@@ -45,45 +45,46 @@ static_assert(CRYPTO_SIGN_PUBLIC_KEY_SIZE == crypto_sign_PUBLICKEYBYTES,
4545static_assert (CRYPTO_SIGN_SECRET_KEY_SIZE == crypto_sign_SECRETKEYBYTES ,
4646 "CRYPTO_SIGN_SECRET_KEY_SIZE should be equal to crypto_sign_SECRETKEYBYTES" );
4747
48- bool create_extended_keypair (uint8_t pk [ EXT_PUBLIC_KEY_SIZE ], uint8_t sk [ EXT_SECRET_KEY_SIZE ] , const Random * rng )
48+ bool create_extended_keypair (Extended_Public_Key * pk , Extended_Secret_Key * sk , const Random * rng )
4949{
5050 /* create signature key pair */
5151 uint8_t seed [crypto_sign_SEEDBYTES ];
5252 random_bytes (rng , seed , crypto_sign_SEEDBYTES );
53- crypto_sign_seed_keypair (pk + ENC_PUBLIC_KEY_SIZE , sk + ENC_SECRET_KEY_SIZE , seed );
53+ crypto_sign_seed_keypair (pk -> sig , sk -> sig , seed );
54+ crypto_memzero (seed , crypto_sign_SEEDBYTES );
5455
5556 /* convert public signature key to public encryption key */
56- const int res1 = crypto_sign_ed25519_pk_to_curve25519 (pk , pk + ENC_PUBLIC_KEY_SIZE );
57+ const int res1 = crypto_sign_ed25519_pk_to_curve25519 (pk -> enc , pk -> sig );
5758
5859 /* convert secret signature key to secret encryption key */
59- const int res2 = crypto_sign_ed25519_sk_to_curve25519 (sk , sk + ENC_SECRET_KEY_SIZE );
60+ const int res2 = crypto_sign_ed25519_sk_to_curve25519 (sk -> enc , sk -> sig );
6061
6162 return res1 == 0 && res2 == 0 ;
6263}
6364
64- const uint8_t * get_enc_key (const uint8_t * key )
65+ const uint8_t * get_enc_key (const Extended_Public_Key * key )
6566{
66- return key ;
67+ return key -> enc ;
6768}
6869
69- const uint8_t * get_sig_pk (const uint8_t * key )
70+ const uint8_t * get_sig_pk (const Extended_Public_Key * key )
7071{
71- return key + ENC_PUBLIC_KEY_SIZE ;
72+ return key -> sig ;
7273}
7374
74- void set_sig_pk (uint8_t * key , const uint8_t * sig_pk )
75+ void set_sig_pk (Extended_Public_Key * key , const uint8_t * sig_pk )
7576{
76- memcpy (key + ENC_PUBLIC_KEY_SIZE , sig_pk , SIG_PUBLIC_KEY_SIZE );
77+ memcpy (key -> sig , sig_pk , SIG_PUBLIC_KEY_SIZE );
7778}
7879
79- const uint8_t * get_sig_sk (const uint8_t * key )
80+ const uint8_t * get_sig_sk (const Extended_Secret_Key * key )
8081{
81- return key + ENC_SECRET_KEY_SIZE ;
82+ return key -> sig ;
8283}
8384
84- const uint8_t * get_chat_id (const uint8_t * key )
85+ const uint8_t * get_chat_id (const Extended_Public_Key * key )
8586{
86- return key + ENC_PUBLIC_KEY_SIZE ;
87+ return key -> sig ;
8788}
8889
8990#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION )
0 commit comments