keyhi.h

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

H
212
字号
/* * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ *  * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. *  * The Original Code is the Netscape security libraries. *  * The Initial Developer of the Original Code is Netscape * Communications Corporation.  Portions created by Netscape are  * Copyright (C) 1994-2000 Netscape Communications Corporation.  All * Rights Reserved. *  * Contributor(s): *  * Alternatively, the contents of this file may be used under the * terms of the GNU General Public License Version 2 or later (the * "GPL"), in which case the provisions of the GPL are applicable  * instead of those above.  If you wish to allow use of your  * version of this file only under the terms of the GPL and not to * allow others to use your version of this file under the MPL, * indicate your decision by deleting the provisions above and * replace them with the notice and other provisions required by * the GPL.  If you do not delete the provisions above, a recipient * may use your version of this file under either the MPL or the * GPL. * * key.h - public data structures and prototypes for the private key library * * $Id: keyhi.h,v 1.1 2000/03/31 19:45:18 relyea%netscape.com Exp $ */#ifndef _KEYHI_H_#define _KEYHI_H_#include "plarena.h"#include "seccomon.h"#include "secoidt.h"#include "secdert.h"#include "keythi.h"#include "certt.h"#include "secpkcs5.h"SEC_BEGIN_PROTOS/*** Destroy a subject-public-key-info object.*/extern void SECKEY_DestroySubjectPublicKeyInfo(CERTSubjectPublicKeyInfo *spki);/*** Copy subject-public-key-info "src" to "dst". "dst" is filled in** appropriately (memory is allocated for each of the sub objects).*/extern SECStatus SECKEY_CopySubjectPublicKeyInfo(PRArenaPool *arena,					     CERTSubjectPublicKeyInfo *dst,					     CERTSubjectPublicKeyInfo *src);/*** Update the PQG parameters for a cert's public key.** Only done for DSA and Fortezza certs*/extern SECStatusSECKEY_UpdateCertPQG(CERTCertificate * subjectCert);/* Compare the KEA parameters of two public keys.   * Only used by fortezza.      */extern SECStatusSECKEY_KEAParamCompare(CERTCertificate *cert1,CERTCertificate *cert2);/*** Return the strength of the public key*/extern unsigned SECKEY_PublicKeyStrength(SECKEYPublicKey *pubk);/*** Make a copy of the private key "privKey"*/extern SECKEYPrivateKey *SECKEY_CopyPrivateKey(SECKEYPrivateKey *privKey);/*** Make a copy of the public key "pubKey"*/extern SECKEYPublicKey *SECKEY_CopyPublicKey(SECKEYPublicKey *pubKey);/*** Convert a private key "privateKey" into a public key*/extern SECKEYPublicKey *SECKEY_ConvertToPublicKey(SECKEYPrivateKey *privateKey);/* * create a new RSA key pair. The public Key is returned... */SECKEYPrivateKey *SECKEY_CreateRSAPrivateKey(int keySizeInBits,					   SECKEYPublicKey **pubk, void *cx);/*** Create a subject-public-key-info based on a public key.*/extern CERTSubjectPublicKeyInfo *SECKEY_CreateSubjectPublicKeyInfo(SECKEYPublicKey *k);/*** Decode a DER encoded public key into an SECKEYPublicKey structure.*/extern SECKEYPublicKey *SECKEY_DecodeDERPublicKey(SECItem *pubkder);/*** Convert a base64 ascii encoded DER public key to our internal format.*/extern SECKEYPublicKey *SECKEY_ConvertAndDecodePublicKey(char *pubkstr);/*** Convert a base64 ascii encoded DER public key and challenge to spki,** and verify the signature and challenge data are correct*/extern CERTSubjectPublicKeyInfo *SECKEY_ConvertAndDecodePublicKeyAndChallenge(char *pkacstr, char *challenge,								void *cx);/*** Decode a DER encoded subject public key info into a** CERTSubjectPublicKeyInfo structure.*/extern CERTSubjectPublicKeyInfo *SECKEY_DecodeDERSubjectPublicKeyInfo(SECItem *spkider);/*** Convert a base64 ascii encoded DER subject public key info to our** internal format.*/extern CERTSubjectPublicKeyInfo *SECKEY_ConvertAndDecodeSubjectPublicKeyInfo(char *spkistr);/*** Destroy a private key object.**	"key" the object*/extern void SECKEY_DestroyPrivateKey(SECKEYPrivateKey *key);/*** Destroy a public key object.**	"key" the object*/extern void SECKEY_DestroyPublicKey(SECKEYPublicKey *key);/* Destroy and zero out a private key info structure.  for now this * function zero's out memory allocated in an arena for the key  * since PORT_FreeArena does not currently do this.   * * NOTE -- If a private key info is allocated in an arena, one should  * not call this function with freeit = PR_FALSE.  The function should  * destroy the arena.   */extern voidSECKEY_DestroyPrivateKeyInfo(SECKEYPrivateKeyInfo *pvk, PRBool freeit);/* Destroy and zero out an encrypted private key info. * * NOTE -- If a encrypted private key info is allocated in an arena, one should  * not call this function with freeit = PR_FALSE.  The function should  * destroy the arena.   */extern voidSECKEY_DestroyEncryptedPrivateKeyInfo(SECKEYEncryptedPrivateKeyInfo *epki,				      PRBool freeit);/* Copy private key info structure.   *  poolp is the arena into which the contents of from is to be copied. *	NULL is a valid entry. *  to is the destination private key info *  from is the source private key info * if either from or to is NULL or an error occurs, SECFailure is  * returned.  otherwise, SECSuccess is returned. */extern SECStatusSECKEY_CopyPrivateKeyInfo(PRArenaPool *poolp,			  SECKEYPrivateKeyInfo *to,			  SECKEYPrivateKeyInfo *from);/* Copy encrypted private key info structure.   *  poolp is the arena into which the contents of from is to be copied. *	NULL is a valid entry. *  to is the destination encrypted private key info *  from is the source encrypted private key info * if either from or to is NULL or an error occurs, SECFailure is  * returned.  otherwise, SECSuccess is returned. */extern SECStatusSECKEY_CopyEncryptedPrivateKeyInfo(PRArenaPool *poolp,				   SECKEYEncryptedPrivateKeyInfo *to,				   SECKEYEncryptedPrivateKeyInfo *from);/* * Accessor functions for key type of public and private keys. */KeyType SECKEY_GetPrivateKeyType(SECKEYPrivateKey *privKey);KeyType SECKEY_GetPublicKeyType(SECKEYPublicKey *pubKey);SEC_END_PROTOS#endif /* _KEYHI_H_ */

⌨️ 快捷键说明

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