OLD | NEW |
1 /* This Source Code Form is subject to the terms of the Mozilla Public | 1 /* This Source Code Form is subject to the terms of the Mozilla Public |
2 * License, v. 2.0. If a copy of the MPL was not distributed with this | 2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
4 /* | 4 /* |
5 * Internal data structures and functions used by pkcs11.c | 5 * Internal data structures and functions used by pkcs11.c |
6 */ | 6 */ |
7 #ifndef _PKCS11I_H_ | 7 #ifndef _PKCS11I_H_ |
8 #define _PKCS11I_H_ 1 | 8 #define _PKCS11I_H_ 1 |
9 | 9 |
10 #include "nssilock.h" | 10 #include "nssilock.h" |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 typedef struct SFTKObjectListElementStr SFTKObjectListElement; | 94 typedef struct SFTKObjectListElementStr SFTKObjectListElement; |
95 typedef struct SFTKObjectStr SFTKObject; | 95 typedef struct SFTKObjectStr SFTKObject; |
96 typedef struct SFTKSessionObjectStr SFTKSessionObject; | 96 typedef struct SFTKSessionObjectStr SFTKSessionObject; |
97 typedef struct SFTKTokenObjectStr SFTKTokenObject; | 97 typedef struct SFTKTokenObjectStr SFTKTokenObject; |
98 typedef struct SFTKSessionStr SFTKSession; | 98 typedef struct SFTKSessionStr SFTKSession; |
99 typedef struct SFTKSlotStr SFTKSlot; | 99 typedef struct SFTKSlotStr SFTKSlot; |
100 typedef struct SFTKSessionContextStr SFTKSessionContext; | 100 typedef struct SFTKSessionContextStr SFTKSessionContext; |
101 typedef struct SFTKSearchResultsStr SFTKSearchResults; | 101 typedef struct SFTKSearchResultsStr SFTKSearchResults; |
102 typedef struct SFTKHashVerifyInfoStr SFTKHashVerifyInfo; | 102 typedef struct SFTKHashVerifyInfoStr SFTKHashVerifyInfo; |
103 typedef struct SFTKHashSignInfoStr SFTKHashSignInfo; | 103 typedef struct SFTKHashSignInfoStr SFTKHashSignInfo; |
| 104 typedef struct SFTKOAEPEncryptInfoStr SFTKOAEPEncryptInfo; |
| 105 typedef struct SFTKOAEPDecryptInfoStr SFTKOAEPDecryptInfo; |
104 typedef struct SFTKSSLMACInfoStr SFTKSSLMACInfo; | 106 typedef struct SFTKSSLMACInfoStr SFTKSSLMACInfo; |
105 typedef struct SFTKItemTemplateStr SFTKItemTemplate; | 107 typedef struct SFTKItemTemplateStr SFTKItemTemplate; |
106 | 108 |
107 /* define function pointer typdefs for pointer tables */ | 109 /* define function pointer typdefs for pointer tables */ |
108 typedef void (*SFTKDestroy)(void *, PRBool); | 110 typedef void (*SFTKDestroy)(void *, PRBool); |
109 typedef void (*SFTKBegin)(void *); | 111 typedef void (*SFTKBegin)(void *); |
110 typedef SECStatus (*SFTKCipher)(void *,void *,unsigned int *,unsigned int, | 112 typedef SECStatus (*SFTKCipher)(void *,void *,unsigned int *,unsigned int, |
111 void *, unsigned int); | 113 void *, unsigned int); |
112 typedef SECStatus (*SFTKVerify)(void *,void *,unsigned int,void *,unsigned int); | 114 typedef SECStatus (*SFTKVerify)(void *,void *,unsigned int,void *,unsigned int); |
113 typedef void (*SFTKHash)(void *,void *,unsigned int); | 115 typedef void (*SFTKHash)(void *,void *,unsigned int); |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 void *params; | 367 void *params; |
366 NSSLOWKEYPublicKey *key; | 368 NSSLOWKEYPublicKey *key; |
367 }; | 369 }; |
368 | 370 |
369 struct SFTKHashSignInfoStr { | 371 struct SFTKHashSignInfoStr { |
370 SECOidTag hashOid; | 372 SECOidTag hashOid; |
371 void *params; | 373 void *params; |
372 NSSLOWKEYPrivateKey *key; | 374 NSSLOWKEYPrivateKey *key; |
373 }; | 375 }; |
374 | 376 |
| 377 /** |
| 378 * Contexts for RSA-OAEP |
| 379 */ |
| 380 struct SFTKOAEPEncryptInfoStr { |
| 381 CK_RSA_PKCS_OAEP_PARAMS *params; |
| 382 NSSLOWKEYPublicKey *key; |
| 383 }; |
| 384 |
| 385 struct SFTKOAEPDecryptInfoStr { |
| 386 CK_RSA_PKCS_OAEP_PARAMS *params; |
| 387 NSSLOWKEYPrivateKey *key; |
| 388 }; |
| 389 |
375 /* context for the Final SSLMAC message */ | 390 /* context for the Final SSLMAC message */ |
376 struct SFTKSSLMACInfoStr { | 391 struct SFTKSSLMACInfoStr { |
377 void *hashContext; | 392 void *hashContext; |
378 SFTKBegin begin; | 393 SFTKBegin begin; |
379 SFTKHash update; | 394 SFTKHash update; |
380 SFTKEnd end; | 395 SFTKEnd end; |
381 CK_ULONG macSize; | 396 CK_ULONG macSize; |
382 int padSize; | 397 int padSize; |
383 unsigned char key[MAX_KEY_LEN]; | 398 unsigned char key[MAX_KEY_LEN]; |
384 unsigned int keySize; | 399 unsigned int keySize; |
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
686 SFTKObject * key); | 701 SFTKObject * key); |
687 extern | 702 extern |
688 CK_RV jpake_Round2(HASH_HashType hashType, | 703 CK_RV jpake_Round2(HASH_HashType hashType, |
689 CK_NSS_JPAKERound2Params * params, | 704 CK_NSS_JPAKERound2Params * params, |
690 SFTKObject * sourceKey, SFTKObject * key); | 705 SFTKObject * sourceKey, SFTKObject * key); |
691 extern | 706 extern |
692 CK_RV jpake_Final(HASH_HashType hashType, | 707 CK_RV jpake_Final(HASH_HashType hashType, |
693 const CK_NSS_JPAKEFinalParams * params, | 708 const CK_NSS_JPAKEFinalParams * params, |
694 SFTKObject * sourceKey, SFTKObject * key); | 709 SFTKObject * sourceKey, SFTKObject * key); |
695 | 710 |
| 711 /* Constant time MAC functions (hmacct.c) */ |
| 712 |
| 713 struct sftk_MACConstantTimeCtxStr { |
| 714 const SECHashObject *hash; |
| 715 unsigned char mac[64]; |
| 716 unsigned char secret[64]; |
| 717 unsigned int headerLength; |
| 718 unsigned int secretLength; |
| 719 unsigned int totalLength; |
| 720 unsigned char header[75]; |
| 721 }; |
| 722 typedef struct sftk_MACConstantTimeCtxStr sftk_MACConstantTimeCtx; |
| 723 sftk_MACConstantTimeCtx* sftk_HMACConstantTime_New( |
| 724 CK_MECHANISM_PTR mech, SFTKObject *key); |
| 725 sftk_MACConstantTimeCtx* sftk_SSLv3MACConstantTime_New( |
| 726 CK_MECHANISM_PTR mech, SFTKObject *key); |
| 727 void sftk_HMACConstantTime_Update(void *pctx, void *data, unsigned int len); |
| 728 void sftk_SSLv3MACConstantTime_Update(void *pctx, void *data, unsigned int len); |
| 729 void sftk_MACConstantTime_EndHash( |
| 730 void *pctx, void *out, unsigned int *outLength, unsigned int maxLength); |
| 731 void sftk_MACConstantTime_DestroyContext(void *pctx, PRBool); |
| 732 |
696 /**************************************** | 733 /**************************************** |
697 * implement TLS Pseudo Random Function (PRF) | 734 * implement TLS Pseudo Random Function (PRF) |
698 */ | 735 */ |
699 | 736 |
700 extern CK_RV | 737 extern CK_RV |
701 sftk_TLSPRFInit(SFTKSessionContext *context, | 738 sftk_TLSPRFInit(SFTKSessionContext *context, |
702 SFTKObject * key, | 739 SFTKObject * key, |
703 CK_KEY_TYPE key_type); | 740 CK_KEY_TYPE key_type); |
704 | 741 |
705 SEC_END_PROTOS | 742 SEC_END_PROTOS |
706 | 743 |
707 #endif /* _PKCS11I_H_ */ | 744 #endif /* _PKCS11I_H_ */ |
OLD | NEW |