pk11func.h

来自「支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS」· C头文件 代码 · 共 451 行 · 第 1/2 页

H
451
字号
PK11SymKey *PK11_ImportSymKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE type,    PK11Origin origin, CK_ATTRIBUTE_TYPE operation, SECItem *key,void *wincx);PK11SymKey *PK11_SymKeyFromHandle(PK11SlotInfo *slot, PK11SymKey *parent,    PK11Origin origin, CK_MECHANISM_TYPE type, CK_OBJECT_HANDLE keyID,     PRBool owner, void *wincx);PK11SymKey *PK11_GetWrapKey(PK11SlotInfo *slot, int wrap,			      CK_MECHANISM_TYPE type,int series, void *wincx);void PK11_SetWrapKey(PK11SlotInfo *slot, int wrap, PK11SymKey *wrapKey);CK_MECHANISM_TYPE PK11_GetMechanism(PK11SymKey *symKey);CK_OBJECT_HANDLE PK11_ImportPublicKey(PK11SlotInfo *slot, 				SECKEYPublicKey *pubKey, PRBool isToken);PK11SymKey *PK11_KeyGen(PK11SlotInfo *slot,CK_MECHANISM_TYPE type,				SECItem *param,	int keySize,void *wincx);/* Key Generation specialized for SDR (fixed DES3 key) */PK11SymKey *PK11_GenDES3TokenKey(PK11SlotInfo *slot, SECItem *keyid, void *cx);SECStatus PK11_PubWrapSymKey(CK_MECHANISM_TYPE type, SECKEYPublicKey *pubKey,				PK11SymKey *symKey, SECItem *wrappedKey);SECStatus PK11_WrapSymKey(CK_MECHANISM_TYPE type, SECItem *params,	 PK11SymKey *wrappingKey, PK11SymKey *symKey, SECItem *wrappedKey);PK11SymKey *PK11_Derive(PK11SymKey *baseKey, CK_MECHANISM_TYPE mechanism,   			SECItem *param, CK_MECHANISM_TYPE target, 		        CK_ATTRIBUTE_TYPE operation, int keySize);PK11SymKey *PK11_DeriveWithFlags( PK11SymKey *baseKey, 	CK_MECHANISM_TYPE derive, SECItem *param, CK_MECHANISM_TYPE target, 	CK_ATTRIBUTE_TYPE operation, int keySize, CK_FLAGS flags);PK11SymKey *PK11_PubDerive( SECKEYPrivateKey *privKey,  SECKEYPublicKey *pubKey, PRBool isSender, SECItem *randomA, SECItem *randomB, CK_MECHANISM_TYPE derive, CK_MECHANISM_TYPE target,		 CK_ATTRIBUTE_TYPE operation, int keySize,void *wincx) ;PK11SymKey *PK11_UnwrapSymKey(PK11SymKey *key, 	CK_MECHANISM_TYPE wraptype, SECItem *param, SECItem *wrapppedKey,  	CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation, int keySize);PK11SymKey *PK11_UnwrapSymKeyWithFlags(PK11SymKey *wrappingKey, 	CK_MECHANISM_TYPE wrapType, SECItem *param, SECItem *wrappedKey, 	CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation, int keySize, 	CK_FLAGS flags);PK11SymKey *PK11_PubUnwrapSymKey(SECKEYPrivateKey *key, SECItem *wrapppedKey,	 CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation, int keySize);PK11SymKey *PK11_FindFixedKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE type, 						SECItem *keyID, void *wincx);SECStatus PK11_DeleteTokenPrivateKey(SECKEYPrivateKey *privKey);SECStatus PK11_DeleteTokenCertAndKey(CERTCertificate *cert,void *wincx);/* size to hold key in bytes */unsigned int PK11_GetKeyLength(PK11SymKey *key);/* size of actual secret parts of key in bits *//* algid is because RC4 strength is determined by the effective bits as well * as the key bits */unsigned int PK11_GetKeyStrength(PK11SymKey *key,SECAlgorithmID *algid);SECStatus PK11_ExtractKeyValue(PK11SymKey *symKey);SECItem * PK11_GetKeyData(PK11SymKey *symKey);PK11SlotInfo * PK11_GetSlotFromKey(PK11SymKey *symKey);void *PK11_GetWindow(PK11SymKey *symKey);SECKEYPrivateKey *PK11_GenerateKeyPair(PK11SlotInfo *slot,   CK_MECHANISM_TYPE type, void *param, SECKEYPublicKey **pubk,		 	    PRBool isPerm, PRBool isSensitive, void *wincx);SECKEYPrivateKey *PK11_MakePrivKey(PK11SlotInfo *slot, KeyType keyType,                        PRBool isTemp, CK_OBJECT_HANDLE privID, void *wincx);SECKEYPrivateKey * PK11_FindPrivateKeyFromCert(PK11SlotInfo *slot,				 	CERTCertificate *cert, void *wincx);SECKEYPrivateKey * PK11_FindKeyByAnyCert(CERTCertificate *cert, void *wincx);SECKEYPrivateKey * PK11_FindKeyByKeyID(PK11SlotInfo *slot, SECItem *keyID,				       void *wincx);CK_OBJECT_HANDLE PK11_FindObjectForCert(CERTCertificate *cert,					void *wincx, PK11SlotInfo **pSlot);int PK11_GetPrivateModulusLen(SECKEYPrivateKey *key); SECStatus PK11_PubDecryptRaw(SECKEYPrivateKey *key, unsigned char *data,   unsigned *outLen, unsigned int maxLen, unsigned char *enc, unsigned encLen);/* The encrypt version of the above function */SECStatus PK11_PubEncryptRaw(SECKEYPublicKey *key, unsigned char *enc,                unsigned char *data, unsigned dataLen, void *wincx);SECStatus PK11_ImportPrivateKeyInfo(PK11SlotInfo *slot, 		SECKEYPrivateKeyInfo *pki, SECItem *nickname,		SECItem *publicValue, PRBool isPerm, PRBool isPrivate,		unsigned int usage, void *wincx);SECStatus PK11_ImportEncryptedPrivateKeyInfo(PK11SlotInfo *slot, 		SECKEYEncryptedPrivateKeyInfo *epki, SECItem *pwitem, 		SECItem *nickname, SECItem *publicValue, PRBool isPerm,		PRBool isPrivate, KeyType type, 		unsigned int usage, void *wincx);SECKEYPrivateKeyInfo *PK11_ExportPrivateKeyInfo(		CERTCertificate *cert, void *wincx);SECKEYEncryptedPrivateKeyInfo *PK11_ExportEncryptedPrivateKeyInfo(		PK11SlotInfo *slot, SECOidTag algTag, SECItem *pwitem,		CERTCertificate *cert, int iteration, void *wincx);SECKEYPrivateKey *PK11_FindKeyByDERCert(PK11SlotInfo *slot, 					CERTCertificate *cert, void *wincx);SECKEYPublicKey *PK11_MakeKEAPubKey(unsigned char *data, int length);SECStatus PK11_DigestKey(PK11Context *context, PK11SymKey *key);PRBool PK11_VerifyKeyOK(PK11SymKey *key);SECKEYPrivateKey *PK11_UnwrapPrivKey(PK11SlotInfo *slot, 		PK11SymKey *wrappingKey, CK_MECHANISM_TYPE wrapType,		SECItem *param, SECItem *wrappedKey, SECItem *label, 		SECItem *publicValue, PRBool token, PRBool sensitive,		CK_KEY_TYPE keyType, CK_ATTRIBUTE_TYPE *usage, int usageCount,		void *wincx);SECStatus PK11_WrapPrivKey(PK11SlotInfo *slot, PK11SymKey *wrappingKey,			   SECKEYPrivateKey *privKey, CK_MECHANISM_TYPE wrapType,			   SECItem *param, SECItem *wrappedKey, void *wincx);PK11SymKey * pk11_CopyToSlot(PK11SlotInfo *slot,CK_MECHANISM_TYPE type,		 	CK_ATTRIBUTE_TYPE operation, PK11SymKey *symKey);SECItem *PK11_GetKeyIDFromCert(CERTCertificate *cert, void *wincx);SECItem * PK11_GetKeyIDFromPrivateKey(SECKEYPrivateKey *key, void *wincx);/********************************************************************** *                   Certs **********************************************************************/SECItem *PK11_MakeIDFromPubKey(SECItem *pubKeyData);CERTCertificate *PK11_GetCertFromPrivateKey(SECKEYPrivateKey *privKey);SECStatus PK11_TraverseSlotCerts(     SECStatus(* callback)(CERTCertificate*,SECItem *,void *),                                                void *arg, void *wincx);CERTCertificate * PK11_FindCertFromNickname(char *nickname, void *wincx);CERTCertList * PK11_FindCertsFromNickname(char *nickname, void *wincx);SECKEYPrivateKey * PK11_FindPrivateKeyFromNickname(char *nickname, void *wincx);PK11SlotInfo *PK11_ImportCertForKey(CERTCertificate *cert, char *nickname,								void *wincx);CK_OBJECT_HANDLE * PK11_FindObjectsFromNickname(char *nickname,	PK11SlotInfo **slotptr, CK_OBJECT_CLASS objclass, int *returnCount, 								void *wincx);PK11SlotInfo *PK11_KeyForCertExists(CERTCertificate *cert,					CK_OBJECT_HANDLE *keyPtr, void *wincx);CK_OBJECT_HANDLE PK11_MatchItem(PK11SlotInfo *slot,CK_OBJECT_HANDLE peer,						CK_OBJECT_CLASS o_class); CERTCertificate * PK11_FindCertByIssuerAndSN(PK11SlotInfo **slot,					CERTIssuerAndSN *sn, void *wincx);CERTCertificate * PK11_FindCertAndKeyByRecipientList(PK11SlotInfo **slot,	SEC_PKCS7RecipientInfo **array, SEC_PKCS7RecipientInfo **rip,				SECKEYPrivateKey**privKey, void *wincx);int PK11_FindCertAndKeyByRecipientListNew(NSSCMSRecipient **recipientlist,				void *wincx);CK_BBOOL PK11_HasAttributeSet( PK11SlotInfo *slot,			       CK_OBJECT_HANDLE id,			       CK_ATTRIBUTE_TYPE type );CK_RV PK11_GetAttributes(PRArenaPool *arena,PK11SlotInfo *slot,			 CK_OBJECT_HANDLE obj,CK_ATTRIBUTE *attr, int count);int PK11_NumberCertsForCertSubject(CERTCertificate *cert);SECStatus PK11_TraverseCertsForSubject(CERTCertificate *cert, 	SECStatus(*callback)(CERTCertificate *, void *), void *arg);SECStatus PK11_TraverseCertsForSubjectInSlot(CERTCertificate *cert,	PK11SlotInfo *slot, SECStatus(*callback)(CERTCertificate *, void *),	void *arg);CERTCertificate *PK11_FindCertFromDERCert(PK11SlotInfo *slot, 					  CERTCertificate *cert, void *wincx);CERTCertificate *PK11_FindCertFromDERSubjectAndNickname(					PK11SlotInfo *slot, 					CERTCertificate *cert, char *nickname,					void *wincx);SECStatus PK11_ImportCertForKeyToSlot(PK11SlotInfo *slot, CERTCertificate *cert,					char *nickname, PRBool addUsage,					void *wincx);CERTCertificate *PK11_FindBestKEAMatch(CERTCertificate *serverCert,void *wincx);SECStatus PK11_GetKEAMatchedCerts(PK11SlotInfo *slot1,   PK11SlotInfo *slot2, CERTCertificate **cert1, CERTCertificate **cert2);PRBool PK11_FortezzaHasKEA(CERTCertificate *cert);CK_OBJECT_HANDLE PK11_FindCertInSlot(PK11SlotInfo *slot, CERTCertificate *cert,				     void *wincx);SECStatus PK11_TraverseCertsForNicknameInSlot(SECItem *nickname,	PK11SlotInfo *slot, SECStatus(*callback)(CERTCertificate *, void *),	void *arg);SECStatus PK11_TraverseCertsInSlot(PK11SlotInfo *slot,       SECStatus(* callback)(CERTCertificate*, void *), void *arg);/********************************************************************** *                   Sign/Verify  **********************************************************************/int PK11_SignatureLen(SECKEYPrivateKey *key);PK11SlotInfo * PK11_GetSlotFromPrivateKey(SECKEYPrivateKey *key);SECStatus PK11_Sign(SECKEYPrivateKey *key, SECItem *sig, SECItem *hash);SECStatus PK11_VerifyRecover(SECKEYPublicKey *key, SECItem *sig,						 SECItem *dsig, void * wincx);SECStatus PK11_Verify(SECKEYPublicKey *key, SECItem *sig, 						SECItem *hash, void *wincx);/********************************************************************** *                   Crypto Contexts **********************************************************************/void PK11_DestroyContext(PK11Context *context, PRBool freeit);PK11Context * PK11_CreateContextByRawKey(PK11SlotInfo *slot,     CK_MECHANISM_TYPE type, PK11Origin origin, CK_ATTRIBUTE_TYPE operation,			 	SECItem *key, SECItem *param, void *wincx);PK11Context *PK11_CreateContextBySymKey(CK_MECHANISM_TYPE type,	CK_ATTRIBUTE_TYPE operation, PK11SymKey *symKey, SECItem *param);PK11Context *PK11_CreateDigestContext(SECOidTag hashAlg);PK11Context *PK11_CloneContext(PK11Context *old);SECStatus PK11_DigestBegin(PK11Context *cx);SECStatus PK11_HashBuf(SECOidTag hashAlg, unsigned char *out, unsigned char *in,					int32 len);SECStatus PK11_DigestOp(PK11Context *context, const unsigned char *in,                         unsigned len);SECStatus PK11_CipherOp(PK11Context *context, unsigned char * out, int *outlen, 				int maxout, unsigned char *in, int inlen);SECStatus PK11_Finalize(PK11Context *context);SECStatus PK11_DigestFinal(PK11Context *context, unsigned char *data, 				unsigned int *outLen, unsigned int length);PRBool PK11_HashOK(SECOidTag hashAlg);SECStatus PK11_SaveContext(PK11Context *cx,unsigned char *save,						int *len, int saveLength);SECStatus PK11_RestoreContext(PK11Context *cx,unsigned char *save,int len);SECStatus PK11_GenerateFortezzaIV(PK11SymKey *symKey,unsigned char *iv,int len);SECStatus PK11_ReadSlotCerts(PK11SlotInfo *slot);void PK11_FreeSlotCerts(PK11SlotInfo *slot);void PK11_SetFortezzaHack(PK11SymKey *symKey) ;/********************************************************************** *                   PBE functions  **********************************************************************/SECAlgorithmID *PK11_CreatePBEAlgorithmID(SECOidTag algorithm, int iteration, SECItem *salt);PK11SymKey *PK11_PBEKeyGen(PK11SlotInfo *slot, SECAlgorithmID *algid,  SECItem *pwitem,	       PRBool faulty3DES, void *wincx);SECItem *PK11_GetPBEIV(SECAlgorithmID *algid, SECItem *pwitem);SEC_END_PROTOS#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?