Alright...cool.
Let me know if you ever successfully get DIGEST-MD5 working.
Have a great weekend!

Thanks and Regards,
Om Kale
Master of Science in Electrical and Computer Engineering
Georgia Institute of Technology


On Fri, Mar 22, 2019 at 3:23 PM Jiuming Shao <shaojiuming2...@gmail.com>
wrote:

> Hi Om,
>
> No. I just started with PLAIN as a PoC.
>
> Cheers!
>
> Om Kale <omkal...@gmail.com> 于2019年3月22日周五 下午3:17写道:
>
>> Hi Jiuming,
>> Were you able to make it work with DIGEST-MD5 instead of just PLAIN auth?
>>
>> Regards,
>> Om Kale
>> Master of Science in Electrical and Computer Engineering
>> Georgia Institute of Technology
>>
>>
>> On Fri, Mar 22, 2019 at 2:40 PM Jiuming Shao <shaojiuming2...@gmail.com>
>> wrote:
>>
>>> Thanks! I figured it out by postfixing `@memcached.realm` after my key.
>>>
>>> dormando <dorma...@rydia.net> 于2019年3月19日周二 上午10:49写道:
>>>
>>>> t/binary-sasl.t under memcached/memcached should show you examples of
>>>> how
>>>> to authenticate. You should be able to just hack up the test to get more
>>>> information about what the password files look like/etc. it writes it
>>>> out
>>>> to tmp.
>>>>
>>>> seems some systems require the @hostname and some don't (mine doesn't, I
>>>> haven't looked into why)
>>>>
>>>> On Tue, 19 Mar 2019, Jiuming Shao wrote:
>>>>
>>>> > Thanks for getting back to me! I referred to that because
>>>> memcached/memcached does not tell me how the binary protocol packets for
>>>> SASL
>>>> > AUTH looks like. For all the server configuration and db setup, I
>>>> followed https://github.com/memcached/memcached/wiki/SASLHowto
>>>> > and https://github.com/memcached/memcached/wiki/SASLAuthProtocol
>>>> > Please let me know when you have time to take a closer look.
>>>> >
>>>> > Cheers!
>>>> > Jiuming
>>>> >
>>>> > dormando <dorma...@rydia.net> 于2019年3月18日周一 下午4:10写道:
>>>> >       Hey,
>>>> >
>>>> >       Can look more closely later, but a few quick things that might
>>>> help:
>>>> >
>>>> >       1) stick to memcached/memcached on github - that's an old
>>>> couchbase fork
>>>> >       you linked to. If you're using couchbase you need to talk to
>>>> them instead.
>>>> >
>>>> >       2) in the t/ dir there're some unit tests for SASL which might
>>>> help you
>>>> >       understand the workflow better.
>>>> >
>>>> >       On Mon, 18 Mar 2019, Jiuming Shao wrote:
>>>> >
>>>> >       > Hey all,
>>>> >       > I am writing my own implementation of a memcachedClient
>>>> within which I want to add authentication. I just started with
>>>> >       PLAIN auth but
>>>> >       > failed.
>>>> >       >
>>>> >       > My main reference is this one
>>>> https://github.com/couchbase/memcached/blob/master/docs/sasl.md
>>>> >       > My guess is that the binary message I am sending through the
>>>> wire was wrong, thus it could never match with the secret I
>>>> >       store in the db
>>>> >       > file.
>>>> >       > After searching around, I found out the SASL_AUTH(0X21) is
>>>> also a key-value like operation, where the key is the auth
>>>> >       mechanism, and the
>>>> >       > value being auth data. The tricky part is how I put them in
>>>> the outgoing request.
>>>> >       >
>>>> >       > Please correct me if i am wrong, below is an example of PLAIN
>>>> auth request
>>>> >       >  1. The auth mechanism comes right after the header. in this
>>>> case 'PLAIN'
>>>> >       >  2. A NULL byte comes after the "key" -> "PLAIN". In this
>>>> case byte # 29.
>>>> >       >  3. Then comes the user@hostName
>>>> >       >  4. A NULL bytes comes after user@hostname. In this case
>>>> byte # 34
>>>> >       >  5. The last part is the password
>>>> >       >
>>>> >       > Byte/     0       |       1       |       2       |       3
>>>>      |
>>>> >       >      /              |               |               |
>>>>        |
>>>> >       >     |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3
>>>> 4 5 6 7|
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >    0| 0x80          | 0x21          | 0x00          | 0x05
>>>>       |
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >    4| 0x00          | 0x00          | 0x00          | 0x00
>>>>       |
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >    8| 0x00          | 0x00          | 0x00          | 0x11
>>>>       |
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >   12| 0x00          | 0x00          | 0x00          | 0x00
>>>>       |
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >   16| 0x00          | 0x00          | 0x00          | 0x00
>>>>       |
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >   20| 0x00          | 0x00          | 0x00          | 0x00
>>>>       |
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >   24| 0x50 ('P')    | 0x4c ('L')    | 0x41 ('A')    | 0x49
>>>> ('I')    |
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >   28| 0x4e ('N')    | 0x00          | 0x75 ('u')    | 0x73
>>>> ('s')    |
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >   32| 0x65 ('e')    | 0x72 ('r')    | 0x00          | 0x70
>>>> ('p')    |
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >   36| 0x65 ('e')    | 0x6e ('n')    | 0x63 ('c')    | 0x69
>>>> ('i')    |
>>>> >       >
>>>>  +---------------+---------------+---------------+---------------+
>>>> >       >   40| 0x6c ('l')    |
>>>> >       >     +---------------+
>>>> >       >     Total 41 bytes (24 bytes header, 5 bytes key and 12 value)
>>>> >       >
>>>> >       > Field        (offset) (value)
>>>> >       > Magic        (0)    : 0x80
>>>> >       > Opcode       (1)    : 0x21
>>>> >       > Key length   (2,3)  : 0x0005
>>>> >       > Extra length (4)    : 0x00
>>>> >       > Data type    (5)    : 0x00
>>>> >       > Vbucket      (6,7)  : 0x0000
>>>> >       > Total body   (8-11) : 0x00000011
>>>> >       > Opaque       (12-15): 0x00000000
>>>> >       > CAS          (16-23): 0x00000000
>>>> >       >
>>>> >       > What could be wrong?
>>>> >       >  *  In my memcached-sasl-db, should I store userName:password
>>>> or username@hostName:password?
>>>> >       >  *  Does the TotalLength of the message include the NULL
>>>> bytes being added between authKey/authData and username/password?
>>>> >       >  *  In my authData should I use \0x00userName\0x00password
>>>> or \0x00userName@hostNname\0x00password?
>>>> >       >  *  Any other suggestions?
>>>> >       >
>>>> >       > Best regards,
>>>> >       > Jiuming
>>>> >       >
>>>> >       > Below are Logs and configurations for your references
>>>> >       >
>>>> >       > memcached logs: Below you will find that I did a
>>>> LIST_MECH(0x20) and then did a SASL_AUTH(0X21)
>>>> >       >
>>>> >       > LRU crawler thread sleeping
>>>> >       > <28 new binary client connection.
>>>> >       > 28: going from conn_new_cmd to conn_waiting
>>>> >       > 28: going from conn_waiting to conn_read
>>>> >       > 28: going from conn_read to conn_closing
>>>> >       > <28 connection closed.
>>>> >       > 28: going from conn_closing to conn_closed
>>>> >       > <28 new binary client connection.
>>>> >       > 28: going from conn_new_cmd to conn_waiting
>>>> >       > 28: going from conn_waiting to conn_read
>>>> >       > 28: going from conn_read to conn_parse_cmd
>>>> >       > <28 Read binary protocol data:
>>>> >       > <28    0x80 0x20 0x00 0x00
>>>> >       > <28    0x00 0x00 0x00 0x00
>>>> >       > <28    0x00 0x00 0x00 0x00
>>>> >       > <28    0x00 0x00 0x00 0x01
>>>> >       > <28    0x00 0x00 0x00 0x00
>>>> >       > <28    0x00 0x00 0x00 0x00
>>>> >       > authenticated() in cmd 0x20 is true
>>>> >       > >28 Writing bin response:
>>>> >       > >28   0x81 0x20 0x00 0x00
>>>> >       > >28   0x00 0x00 0x00 0x00
>>>> >       > >28   0x00 0x00 0x00 0x15
>>>> >       > >28   0x00 0x00 0x00 0x01
>>>> >       > >28   0x00 0x00 0x00 0x00
>>>> >       > >28   0x00 0x00 0x00 0x00
>>>> >       > 28: going from conn_parse_cmd to conn_mwrite
>>>> >       > 28: going from conn_mwrite to conn_new_cmd
>>>> >       > 28: going from conn_new_cmd to conn_waiting
>>>> >       > 28: going from conn_waiting to conn_read
>>>> >       > 28: going from conn_read to conn_parse_cmd
>>>> >       > <28 Read binary protocol data:
>>>> >       > <28    0x80 0x21 0x00 0x05
>>>> >       > <28    0x00 0x00 0x00 0x00
>>>> >       > <28    0x00 0x00 0x00 0x14
>>>> >       > <28    0x00 0x00 0x00 0x02
>>>> >       > <28    0x00 0x00 0x00 0x00
>>>> >       > <28    0x00 0x00 0x00 0x00
>>>> >       > authenticated() in cmd 0x21 is true
>>>> >       > 28: going from conn_parse_cmd to conn_nread
>>>> >       > mech:  ``PLAIN'' with 15 bytes of data
>>>> >       > SASL (severity 2): Password verification failed
>>>> >       > sasl result code:  -20
>>>> >       > Unknown sasl response:  -20
>>>> >       > >28 Writing an error: Auth failure.
>>>> >       > >28 Writing bin response:
>>>> >       > >28   0x81 0x21 0x00 0x00
>>>> >       > >28   0x00 0x00 0x00 0x20
>>>> >       > >28   0x00 0x00 0x00 0x0d
>>>> >       > >28   0x00 0x00 0x00 0x02
>>>> >       > >28   0x00 0x00 0x00 0x00
>>>> >       > >28   0x00 0x00 0x00 0x00
>>>> >       >
>>>> >       >
>>>> >       > My memcached.conf
>>>> >       >
>>>> >       > % cat memcached.conf
>>>> >       > mech_list: plain
>>>> >       > log_level: 5
>>>> >       > sasldb_path: /tmp/memcached-sasl-db
>>>> >       >
>>>> >       > My /tmp/memcached-sasl-db
>>>> >       >
>>>> >       > % cat memcached-sasl-db
>>>> >       > myname@myHostName:mypass
>>>> >       >
>>>> >       > My exports:
>>>> >       >
>>>> >       > export MEMCACHED_SASL_PWDB=/tmp/memcached-sasl-db
>>>> >       > export SASL_CONF_PATH=`pwd`/memcached.conf
>>>> >       >
>>>> >       > --
>>>> >       >
>>>> >       > ---
>>>> >       > You received this message because you are subscribed to the
>>>> Google Groups "memcached" group.
>>>> >       > To unsubscribe from this group and stop receiving emails from
>>>> it, send an email to memcached+unsubscr...@googlegroups.com.
>>>> >       > For more options, visit https://groups.google.com/d/optout.
>>>> >       >
>>>> >       >
>>>> >
>>>> >       --
>>>> >
>>>> >       ---
>>>> >       You received this message because you are subscribed to the
>>>> Google Groups "memcached" group.
>>>> >       To unsubscribe from this group and stop receiving emails from
>>>> it, send an email to memcached+unsubscr...@googlegroups.com.
>>>> >       For more options, visit https://groups.google.com/d/optout.
>>>> >
>>>> > --
>>>> >
>>>> > ---
>>>> > You received this message because you are subscribed to the Google
>>>> Groups "memcached" group.
>>>> > To unsubscribe from this group and stop receiving emails from it,
>>>> send an email to memcached+unsubscr...@googlegroups.com.
>>>> > For more options, visit https://groups.google.com/d/optout.
>>>> >
>>>> >
>>>>
>>>> --
>>>>
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "memcached" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to memcached+unsubscr...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "memcached" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to memcached+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "memcached" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to memcached+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "memcached" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to memcached+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"memcached" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to memcached+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to