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 + -
显示快捷键?