softoken.h

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

H
159
字号
/* * softoken.h - private data structures and prototypes for the softoken lib * * 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. * * $Id: softoken.h,v 1.2 2000/09/23 00:04:34 relyea%netscape.com Exp $ */#ifndef _SOFTOKEN_H_#define _SOFTOKEN_H_#include "blapi.h"#include "keytlow.h"#include "keytboth.h"#include "softoknt.h"#include "secoidt.h"#include "pkcs11t.h"     /* CK_RV Required for pk11_fipsPowerUpSelfTest(). */SEC_BEGIN_PROTOS/*** RSA encryption/decryption. When encrypting/decrypting the output** buffer must be at least the size of the public key modulus.*//*** Format some data into a PKCS#1 encryption block, preparing the** data for RSA encryption.**	"result" where the formatted block is stored (memory is allocated)**	"modulusLen" the size of the formatted block**	"blockType" what block type to use (SEC_RSABlock*)**	"data" the data to format*/extern SECStatus RSA_FormatBlock(SECItem *result,				 unsigned int modulusLen,				 RSA_BlockType blockType,				 SECItem *data);/*** Similar, but just returns a pointer to the allocated memory, *and*** will *only* format one block, even if we (in the future) modify** RSA_FormatBlock() to loop over multiples of modulusLen.*/extern unsigned char *RSA_FormatOneBlock(unsigned int modulusLen,					 RSA_BlockType blockType,					 SECItem *data);/* * convenience wrappers for doing single RSA operations. They create the * RSA context internally and take care of the formatting * requirements. Blinding happens automagically within RSA_SignHash and * RSA_DecryptBlock. */externSECStatus RSA_Sign(SECKEYLowPrivateKey *key, unsigned char *output,		       unsigned int *outputLen, unsigned int maxOutputLen,		       unsigned char *input, unsigned int inputLen);externSECStatus RSA_CheckSign(SECKEYLowPublicKey *key, unsigned char *sign,			    unsigned int signLength, unsigned char *hash,			    unsigned int hashLength);externSECStatus RSA_CheckSignRecover(SECKEYLowPublicKey *key, unsigned char *data,    			    unsigned int *data_len,unsigned int max_output_len, 			    unsigned char *sign, unsigned int sign_len);externSECStatus RSA_EncryptBlock(SECKEYLowPublicKey *key, unsigned char *output,			   unsigned int *outputLen, unsigned int maxOutputLen,			   unsigned char *input, unsigned int inputLen);externSECStatus RSA_DecryptBlock(SECKEYLowPrivateKey *key, unsigned char *output,			   unsigned int *outputLen, unsigned int maxOutputLen,			   unsigned char *input, unsigned int inputLen);/* * added to make pkcs #11 happy *   RAW is RSA_X_509 */externSECStatus RSA_SignRaw( SECKEYLowPrivateKey *key, unsigned char *output,			 unsigned int *output_len, unsigned int maxOutputLen,			 unsigned char *input, unsigned int input_len);externSECStatus RSA_CheckSignRaw( SECKEYLowPublicKey *key, unsigned char *sign, 			    unsigned int sign_len, unsigned char *hash, 			    unsigned int hash_len);externSECStatus RSA_CheckSignRecoverRaw( SECKEYLowPublicKey *key, unsigned char *data,			    unsigned int *data_len, unsigned int max_output_len,			    unsigned char *sign, unsigned int sign_len);externSECStatus RSA_EncryptRaw( SECKEYLowPublicKey *key, unsigned char *output,			    unsigned int *output_len,			    unsigned int max_output_len, 			    unsigned char *input, unsigned int input_len);externSECStatus RSA_DecryptRaw(SECKEYLowPrivateKey *key, unsigned char *output,			     unsigned int *output_len,    			     unsigned int max_output_len,			     unsigned char *input, unsigned int input_len);/*** Prepare a buffer for DES encryption, growing to the appropriate boundary,** filling with the appropriate padding.** We add from 1 to DES_KEY_LENGTH bytes -- we *always* grow.** The extra bytes contain the value of the length of the padding:** if we have 2 bytes of padding, then the padding is "0x02, 0x02".**** NOTE: If arena is non-NULL, we re-allocate from there, otherwise** we assume (and use) PR memory (re)allocation.** Maybe this belongs in util?*/extern unsigned char * DES_PadBuffer(PRArenaPool *arena, unsigned char *inbuf,                                      unsigned int inlen, unsigned int *outlen);/****************************************//*** Power-Up selftests required for FIPS and invoked only** under PKCS #11 FIPS mode.*/extern CK_RV pk11_fipsPowerUpSelfTest( void ); SEC_END_PROTOS#endif /* _SOFTOKEN_H_ */

⌨️ 快捷键说明

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