📄 pgprsaglue.h
字号:
/*
* pgpRSAGlue.h - RSA encryption and decryption
*
* This is a PRIVATE header file, for use only within the PGP Library.
* You should not be using these functions in an application.
*
* $Id: pgpRSAGlue.h,v 1.10 1998/07/10 04:05:56 hal Exp $
*/
#ifndef Included_pgpRSAGlue_h
#define Included_pgpRSAGlue_h
#include "pgpSDKBuildFlags.h"
#ifndef PGP_RSA
#error "PGP_RSA requires a value"
#endif
#if PGP_RSA
#include "bn.h"
#include "pgpUsuals.h"
#include "pgpOpaqueStructs.h"
PGP_BEGIN_C_DECLARATIONS
/* A structure to hold a public key */
typedef struct RSApub
{
BigNum n; /* The public modulus */
BigNum e; /* The public exponent */
} RSApub;
/* A structure to hold a secret key */
typedef struct RSAsec
{
BigNum n; /* Copy of public parameters */
BigNum e;
BigNum d; /* Decryption exponent */
BigNum p; /* The smaller factor of n */
BigNum q; /* The larger factor of n */
BigNum u; /* 1/p (mod q) */
} RSAsec ;
/* Declarations */
int rsaKeyTooBig(RSApub const *pub, RSAsec const *sec);
/* Encrypt */
int rsaPublicEncrypt(BigNum *bn, PGPByte const *in, unsigned len,
RSApub const *pub,
PGPRandomContext const *rc);
/* Sign */
int rsaPrivateEncrypt(BigNum *bn, PGPByte const *in, unsigned len,
RSAsec const *sec);
/* Verify */
int rsaPublicDecrypt(PGPByte *buf, unsigned len, BigNum *bn,
RSApub const *pub);
/* Decrypt */
int rsaPrivateDecrypt(PGPByte *buf, unsigned len, BigNum *bn,
RSAsec const *sec);
/* Slightly higher level functions for CAPI */
#if PGP_USECAPIFORRSA
PGPBoolean
rsaVerifyHashSignature(BigNum *bn, RSApub const *pub, PGPHashVTBL const *h,
PGPByte const *hash);
int
rsaSignHash(BigNum *bn, RSAsec const *sec, PGPHashVTBL const *h,
PGPByte const *hash);
#endif /* PGP_USECAPIFORRSA */
PGP_END_C_DECLARATIONS
#endif /* PGP_RSA */
#endif /* !Included_pgpRSAGlue_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -