<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:15:20 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[CDRIVER-2475] Implement SASLPrep</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-2475</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;SASLPrep prepares strings that contain non-ASCII characters for use as username and password with SCRAM-SHA-256 auth for MongoDB 4+. Watch &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-444&quot; title=&quot;Implement SASLPrep&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-444&quot;&gt;&lt;del&gt;DRIVERS-444&lt;/del&gt;&lt;/a&gt; for details.&lt;/p&gt;

&lt;p&gt;The C Driver already depends (optionally) on the Cyrus SASL library on Linux to implement Kerberos/GSSAPI auth. For normal SCRAM-SHA-1 auth we only depend on an SSL library, without requiring Cyrus.&lt;/p&gt;

&lt;p&gt;Cyrus SASL &lt;a href=&quot;https://www.cyrusimap.org/docs/cyrus-sasl/2.1.25/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;claims to support SASLPrep&lt;/a&gt; but I don&apos;t know how to access its SASLPrep implementation for our own SCRAM-SHA-256 mechanism. If we can figure that out, then one option we have is to use Cyrus&apos;s SASLPrep on Linux if Cyrus is available, otherwise don&apos;t do SASLPrep and risk users being unable to log in with non-ASCII credentials. Another option there is to just vendor in a license-compliant implementation of SASLPrep so we can continue to support the default auth mechanism using only an SSL library, without Cyrus.&lt;/p&gt;

&lt;p&gt;Another option is to copy this code and everything it depends upon from &lt;a href=&quot;https://github.com/heimdal/heimdal/blob/aa87e08cc72fdf708cfc353020a713970991a21b/lib/wind/stringprep.c#L119&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Heimdal&lt;/a&gt; and use it on all platforms. Check with Legal if this is ok.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Or&lt;/b&gt;, go ask the Platforms Team what they&apos;re doing in the server to implement SASLPrep. I think they&apos;re using &lt;a href=&quot;http://site.icu-project.org/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;libicu&lt;/a&gt; for it, perhaps that&apos;s widely enough available that we could depend on it for auth. Here&apos;s Windows: &lt;a href=&quot;https://msdn.microsoft.com/en-us/library/windows/desktop/mt823414(v=vs.85).aspx&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://msdn.microsoft.com/en-us/library/windows/desktop/mt823414(v=vs.85).aspx&lt;/a&gt;&lt;/p&gt;
</description>
                <environment></environment>
        <key id="488273">CDRIVER-2475</key>
            <summary>Implement SASLPrep</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="kevin.albertson@mongodb.com">Kevin Albertson</assignee>
                                    <reporter username="jesse@mongodb.com">A. Jesse Jiryu Davis</reporter>
                        <labels>
                    </labels>
                <created>Sat, 27 Jan 2018 14:54:22 +0000</created>
                <updated>Sat, 28 Oct 2023 11:30:10 +0000</updated>
                            <resolved>Wed, 23 May 2018 21:37:21 +0000</resolved>
                                                    <fixVersion>1.11.0</fixVersion>
                                    <component>auth</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="1900164" author="xgen-internal-githook" created="Wed, 23 May 2018 21:37:12 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;kevinAlbs&apos;, &apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;email&apos;: &apos;kevin.albertson@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-2475&quot; title=&quot;Implement SASLPrep&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-2475&quot;&gt;&lt;del&gt;CDRIVER-2475&lt;/del&gt;&lt;/a&gt; implement SASLPrep&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/15e89fd494d6a33b93a9e4d655b88762739d12b1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/15e89fd494d6a33b93a9e4d655b88762739d12b1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1897790" author="jesse" created="Mon, 21 May 2018 23:17:51 +0000"  >&lt;p&gt;Let&apos;s merge this to master and close the ticket now that 1.10 is out.&lt;/p&gt;</comment>
                            <comment id="1816399" author="kevin.albertson" created="Mon, 26 Feb 2018 19:59:01 +0000"  >&lt;p&gt;SASLPrep has been pushed to the branch sasl-prep. It uses libicu.&lt;/p&gt;

&lt;p&gt;SASLPrep is only needed when usernames and passwords have non-ASCII or control characters. Since SASLPrep is the only function requiring libicu it was decided that libicu not be bundled in with the driver. Instead, a user must have libicu installed on their system. In the implementation of SCRAM-SHA-256, if a username or password is detected as having non-ASCII or control characters that may require SASLPrep, we can show an error.&lt;/p&gt;

&lt;p&gt;The FindICU CMake module also requires CMake 3.7.&lt;/p&gt;</comment>
                            <comment id="1816373" author="xgen-internal-githook" created="Mon, 26 Feb 2018 19:42:43 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;kevin.albertson@10gen.com&apos;, &apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-2475&quot; title=&quot;Implement SASLPrep&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-2475&quot;&gt;&lt;del&gt;CDRIVER-2475&lt;/del&gt;&lt;/a&gt; implement SASLPrep&lt;br/&gt;
Branch: sasl-prep&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/21c3180c805766d30704036485dbd7f53aa54d54&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/21c3180c805766d30704036485dbd7f53aa54d54&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1816293" author="xgen-internal-githook" created="Mon, 26 Feb 2018 18:56:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;kevin.albertson@10gen.com&apos;, &apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-2475&quot; title=&quot;Implement SASLPrep&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-2475&quot;&gt;&lt;del&gt;CDRIVER-2475&lt;/del&gt;&lt;/a&gt; implement SASLPrep&lt;br/&gt;
Branch: sasl-prep&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/c0c4ce3dd3d1908933af784830c26305da1f6194&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/c0c4ce3dd3d1908933af784830c26305da1f6194&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="488875">CXX-1505</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="485274">DRIVERS-444</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="488876">PHPC-1105</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htgfvj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>