diff options
Diffstat (limited to 'security/nss/lib/freebl/blapi.h')
-rw-r--r-- | security/nss/lib/freebl/blapi.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/security/nss/lib/freebl/blapi.h b/security/nss/lib/freebl/blapi.h index 3b404992b..6f806884e 100644 --- a/security/nss/lib/freebl/blapi.h +++ b/security/nss/lib/freebl/blapi.h @@ -380,6 +380,9 @@ extern SECStatus KEA_Derive(SECItem *prime, */ extern PRBool KEA_Verify(SECItem *Y, SECItem *prime, SECItem *subPrime); +/* verify a value is prime */ +PRBool KEA_PrimeCheck(SECItem *prime); + /**************************************** * J-PAKE key transport */ @@ -856,6 +859,28 @@ extern SECStatus AES_Decrypt(AESContext *cx, unsigned char *output, unsigned int *outputLen, unsigned int maxOutputLen, const unsigned char *input, unsigned int inputLen); +/* +** Perform AES AEAD operation (either encrypt or decrypt), controlled by +** the context. +** "cx" the context +** "output" the output buffer to store the encrypted data. +** "outputLen" how much data is stored in "output". Set by the routine +** after some data is stored in output. +** "maxOutputLen" the maximum amount of data that can ever be +** stored in "output" +** "input" the input data +** "inputLen" the amount of input data +** "params" pointer to an AEAD specific param PKCS #11 param structure +** "paramsLen" length of the param structure pointed to by params +** "aad" addition authenticated data +** "aadLen" the amount of additional authenticated data. +*/ +extern SECStatus +AES_AEAD(AESContext *cx, unsigned char *output, + unsigned int *outputLen, unsigned int maxOutputLen, + const unsigned char *input, unsigned int inputLen, + void *params, unsigned int paramsLen, + const unsigned char *aad, unsigned int aadLen); /******************************************/ /* @@ -922,6 +947,38 @@ AESKeyWrap_Decrypt(AESKeyWrapContext *cx, unsigned char *output, unsigned int *outputLen, unsigned int maxOutputLen, const unsigned char *input, unsigned int inputLen); +/* +** Perform AES padded key wrap. +** "cx" the context +** "output" the output buffer to store the encrypted data. +** "outputLen" how much data is stored in "output". Set by the routine +** after some data is stored in output. +** "maxOutputLen" the maximum amount of data that can ever be +** stored in "output" +** "input" the input data +** "inputLen" the amount of input data +*/ +extern SECStatus +AESKeyWrap_EncryptKWP(AESKeyWrapContext *cx, unsigned char *output, + unsigned int *outputLen, unsigned int maxOutputLen, + const unsigned char *input, unsigned int inputLen); + +/* +** Perform AES padded key unwrap. +** "cx" the context +** "output" the output buffer to store the decrypted data. +** "outputLen" how much data is stored in "output". Set by the routine +** after some data is stored in output. +** "maxOutputLen" the maximum amount of data that can ever be +** stored in "output" +** "input" the input data +** "inputLen" the amount of input data +*/ +extern SECStatus +AESKeyWrap_DecryptKWP(AESKeyWrapContext *cx, unsigned char *output, + unsigned int *outputLen, unsigned int maxOutputLen, + const unsigned char *input, unsigned int inputLen); + /******************************************/ /* ** Camellia symmetric block cypher @@ -1014,6 +1071,20 @@ extern SECStatus ChaCha20Poly1305_Open( const unsigned char *nonce, unsigned int nonceLen, const unsigned char *ad, unsigned int adLen); +extern SECStatus ChaCha20Poly1305_Encrypt( + const ChaCha20Poly1305Context *ctx, unsigned char *output, + unsigned int *outputLen, unsigned int maxOutputLen, + const unsigned char *input, unsigned int inputLen, + const unsigned char *nonce, unsigned int nonceLen, + const unsigned char *ad, unsigned int adLen, unsigned char *tagOut); + +extern SECStatus ChaCha20Poly1305_Decrypt( + const ChaCha20Poly1305Context *ctx, unsigned char *output, + unsigned int *outputLen, unsigned int maxOutputLen, + const unsigned char *input, unsigned int inputLen, + const unsigned char *nonce, unsigned int nonceLen, + const unsigned char *ad, unsigned int adLen, unsigned char *tagIn); + extern SECStatus ChaCha20_Xor( unsigned char *output, const unsigned char *block, unsigned int len, const unsigned char *k, const unsigned char *nonce, PRUint32 ctr); |