Openssh KDF testing

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

 



Hello Everyone,

I am writing code to test derive_keys functionality.

The function signature is:
static u_char *
derive_key(Kex *kex, int id, u_int need, u_char *hash, u_int hashlen,
    BIGNUM *shared_secret)

Now, the input which is provided to us is
K(share_secret) as an array of characters.
H(Hash) as an array of characters.
Session_id as an array of characters

Now, first I converted hash and session_id in binary form using hex2bin
function.

For shared secret, the bignum structure is like

struct bignum_st
       {
       BN_ULONG *d;    /* Pointer to an array of 'BN_BITS2' bit chunks. */
       int top;        /* Index of last used d +1. */
       /* The next are internal book keeping for bn_expand. */
       int dmax;       /* Size of the d array. */
       int neg;        /* one if the number is negative */
       int flags;
       };


My doubt is how to fill the shared_secret structure ( which is of BIGNUM
type) elements  ? from the array of characters, K.

For H and session_id I converted them to bin. For K what should be done?

I need to pass these three values to the derive_key function which will
return below six outputs
Initial IV (client to server)  ......for id = 'A'
Initial IV (server to client)  ......for id = 'B'
Encryption key (client to server).....for id = 'C'
Encryption key (server to client) .....for id = 'D'
Integrity key (client to server) .....for id = 'E'
Integrity key (server to client) .....for id = 'F'

Please help me in understanding SSH key derivation.

Thanks
Ravi Pratap
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@xxxxxxxxxxx
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev




[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux