mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-13 03:46:26 +08:00
update pmeth/ameth
This commit is contained in:
@@ -59,6 +59,9 @@
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
|
||||
#define PAILLIER_MIN_KEY_BITS 2048
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -72,7 +75,7 @@ void PAILLIER_free(PAILLIER *key);
|
||||
int PAILLIER_size(const PAILLIER *key);
|
||||
int PAILLIER_security_bits(const PAILLIER *key);
|
||||
|
||||
int PAILLIER_generate_key(PAILLIER *key, int bits);
|
||||
int PAILLIER_generate_key(PAILLIER *key, int bits/* as RSA N */);
|
||||
int PAILLIER_check_key(PAILLIER *key);
|
||||
int PAILLIER_encrypt(BIGNUM *out, const BIGNUM *in, PAILLIER *key);
|
||||
int PAILLIER_decrypt(BIGNUM *out, const BIGNUM *in, PAILLIER *key);
|
||||
@@ -84,6 +87,19 @@ int PAILLIER_up_ref(PAILLIER *key);
|
||||
DECLARE_ASN1_ENCODE_FUNCTIONS_const(PAILLIER, PaillierPrivateKey)
|
||||
DECLARE_ASN1_ENCODE_FUNCTIONS_const(PAILLIER, PaillierPublicKey)
|
||||
|
||||
|
||||
# define EVP_PKEY_CTRL_PAILLIER_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 1)
|
||||
|
||||
# define EVP_PKEY_CTX_set_paillier_keygen_bits(ctx, nbits) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_PAILLIER, \
|
||||
EVP_PKEY_OP_KEYGEN, \
|
||||
EVP_PKEY_CTRL_PAILLIER_KEYGEN_BITS, nbits, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_get_paillier_keygen_bits(ctx) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_PAILLIER, \
|
||||
EVP_PKEY_OP_KEYGEN, \
|
||||
EVP_PKEY_CTRL_PAILLIER_KEYGEN_BITS, -2, NULL)
|
||||
|
||||
/* BEGIN ERROR CODES */
|
||||
/*
|
||||
* The following lines are auto generated by the script mkerr.pl. Any changes
|
||||
@@ -106,16 +122,22 @@ int ERR_load_PAILLIER_strings(void);
|
||||
# define PAILLIER_F_PAILLIER_PRIV_DECODE 111
|
||||
# define PAILLIER_F_PAILLIER_PRIV_ENCODE 112
|
||||
# define PAILLIER_F_PAILLIER_PUB_DECODE 107
|
||||
# define PAILLIER_F_PKEY_PAILLIER_CTRL 113
|
||||
# define PAILLIER_F_PKEY_PAILLIER_CTRL_STR 114
|
||||
# define PAILLIER_F_PKEY_PAILLIER_DECRYPT 108
|
||||
# define PAILLIER_F_PKEY_PAILLIER_ENCRYPT 109
|
||||
# define PAILLIER_F_PKEY_PAILLIER_INIT 115
|
||||
# define PAILLIER_F_PKEY_PAILLIER_KEYGEN 116
|
||||
|
||||
/* Reason codes. */
|
||||
# define PAILLIER_R_BUFFER_TOO_SMALL 104
|
||||
# define PAILLIER_R_DECODE_ERROR 105
|
||||
# define PAILLIER_R_GENERATE_PRIME_FAILED 100
|
||||
# define PAILLIER_R_INVALID_PLAINTEXT 101
|
||||
# define PAILLIER_R_KEY_SIZE_TOO_SMALL 106
|
||||
# define PAILLIER_R_MALLOC_FAILED 102
|
||||
# define PAILLIER_R_NOT_IMPLEMENTED 103
|
||||
# define PAILLIER_R_VALUE_MISSING 107
|
||||
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -155,44 +155,56 @@ typedef struct Struct_FILEATTRIBUTE {
|
||||
} FILEATTRIBUTE, *PFILEATTRIBUTE;
|
||||
#pragma pack()
|
||||
|
||||
/* 7.1.2 */
|
||||
ULONG DEVAPI SKF_WaitForDevEvent(
|
||||
LPSTR szDevName,
|
||||
ULONG *pulDevNameLen,
|
||||
ULONG *pulEvent);
|
||||
|
||||
/* 7.1.3 */
|
||||
ULONG DEVAPI SKF_CancelWaitForDevEvent(
|
||||
void);
|
||||
|
||||
ULONG DEVAPI SKF_EnumDev(BOOL bPresent,
|
||||
/* 7.1.4 */
|
||||
ULONG DEVAPI SKF_EnumDev(
|
||||
BOOL bPresent,
|
||||
LPSTR szNameList,
|
||||
ULONG *pulSize);
|
||||
|
||||
/* 7.1.5 */
|
||||
ULONG DEVAPI SKF_ConnectDev(
|
||||
LPSTR szName,
|
||||
DEVHANDLE *phDev);
|
||||
|
||||
/* 7.1.6 */
|
||||
ULONG DEVAPI SKF_DisConnectDev(
|
||||
DEVHANDLE hDev);
|
||||
|
||||
/* 7.1.7 */
|
||||
ULONG DEVAPI SKF_GetDevState(
|
||||
LPSTR szDevName,
|
||||
ULONG *pulDevState);
|
||||
|
||||
/* 7.1.8 */
|
||||
ULONG DEVAPI SKF_SetLabel(
|
||||
DEVHANDLE hDev,
|
||||
LPSTR szLabel);
|
||||
|
||||
/* 7.1.9 */
|
||||
ULONG DEVAPI SKF_GetDevInfo(
|
||||
DEVHANDLE hDev,
|
||||
DEVINFO *pDevInfo);
|
||||
|
||||
/* 7.1.10 */
|
||||
ULONG DEVAPI SKF_LockDev(
|
||||
DEVHANDLE hDev,
|
||||
ULONG ulTimeOut);
|
||||
|
||||
/* 7.1.11 */
|
||||
ULONG DEVAPI SKF_UnlockDev(
|
||||
DEVHANDLE hDev);
|
||||
|
||||
/* 7.1.12 */
|
||||
ULONG DEVAPI SKF_Transmit(
|
||||
DEVHANDLE hDev,
|
||||
BYTE *pbCommand,
|
||||
@@ -200,16 +212,19 @@ ULONG DEVAPI SKF_Transmit(
|
||||
BYTE *pbData,
|
||||
ULONG *pulDataLen);
|
||||
|
||||
/* 7.2.2 */
|
||||
ULONG DEVAPI SKF_ChangeDevAuthKey(
|
||||
DEVHANDLE hDev,
|
||||
BYTE *pbKeyValue,
|
||||
ULONG ulKeyLen);
|
||||
|
||||
/* 7.2.3 */
|
||||
ULONG DEVAPI SKF_DevAuth(
|
||||
DEVHANDLE hDev,
|
||||
BYTE *pbAuthData,
|
||||
ULONG ulLen);
|
||||
|
||||
/* 7.2.4 */
|
||||
ULONG DEVAPI SKF_ChangePIN(
|
||||
HAPPLICATION hApplication,
|
||||
ULONG ulPINType,
|
||||
@@ -217,6 +232,7 @@ ULONG DEVAPI SKF_ChangePIN(
|
||||
LPSTR szNewPin,
|
||||
ULONG *pulRetryCount);
|
||||
|
||||
/* 7.2.5 */
|
||||
LONG DEVAPI SKF_GetPINInfo(
|
||||
HAPPLICATION hApplication,
|
||||
ULONG ulPINType,
|
||||
@@ -224,21 +240,25 @@ LONG DEVAPI SKF_GetPINInfo(
|
||||
ULONG *pulRemainRetryCount,
|
||||
BOOL *pbDefaultPin);
|
||||
|
||||
/* 7.2.6 */
|
||||
ULONG DEVAPI SKF_VerifyPIN(
|
||||
HAPPLICATION hApplication,
|
||||
ULONG ulPINType,
|
||||
LPSTR szPIN,
|
||||
ULONG *pulRetryCount);
|
||||
|
||||
/* 7.2.7 */
|
||||
ULONG DEVAPI SKF_UnblockPIN(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szAdminPIN,
|
||||
LPSTR szNewUserPIN,
|
||||
ULONG *pulRetryCount);
|
||||
|
||||
/* 7.2.8 */
|
||||
ULONG DEVAPI SKF_ClearSecureState(
|
||||
HAPPLICATION hApplication);
|
||||
|
||||
/* 7.3.2 */
|
||||
ULONG DEVAPI SKF_CreateApplication(
|
||||
DEVHANDLE hDev,
|
||||
LPSTR szAppName,
|
||||
@@ -249,22 +269,28 @@ ULONG DEVAPI SKF_CreateApplication(
|
||||
DWORD dwCreateFileRights,
|
||||
HAPPLICATION *phApplication);
|
||||
|
||||
ULONG DEVAPI SKF_EnumApplication(DEVHANDLE hDev,
|
||||
/* 7.3.3 */
|
||||
ULONG DEVAPI SKF_EnumApplication(
|
||||
DEVHANDLE hDev,
|
||||
LPSTR szAppName,
|
||||
ULONG *pulSize);
|
||||
|
||||
/* 7.3.4 */
|
||||
ULONG DEVAPI SKF_DeleteApplication(
|
||||
DEVHANDLE hDev,
|
||||
LPSTR szAppName);
|
||||
|
||||
/* 7.3.5 */
|
||||
ULONG DEVAPI SKF_OpenApplication(
|
||||
DEVHANDLE hDev,
|
||||
LPSTR szAppName,
|
||||
HAPPLICATION *phApplication);
|
||||
|
||||
/* 7.3.6 */
|
||||
ULONG DEVAPI SKF_CloseApplication(
|
||||
HAPPLICATION hApplication);
|
||||
|
||||
/* 7.4.2 */
|
||||
ULONG DEVAPI SKF_CreateFile(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szFileName,
|
||||
@@ -272,20 +298,24 @@ ULONG DEVAPI SKF_CreateFile(
|
||||
ULONG ulReadRights,
|
||||
ULONG ulWriteRights);
|
||||
|
||||
/* 7.4.3 */
|
||||
ULONG DEVAPI SKF_DeleteFile(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szFileName);
|
||||
|
||||
/* 7.4.4 */
|
||||
ULONG DEVAPI SKF_EnumFiles(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szFileList,
|
||||
ULONG *pulSize);
|
||||
|
||||
/* 7.4.5 */
|
||||
ULONG DEVAPI SKF_GetFileInfo(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szFileName,
|
||||
FILEATTRIBUTE *pFileInfo);
|
||||
|
||||
/* 7.4.6 */
|
||||
ULONG DEVAPI SKF_ReadFile(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szFileName,
|
||||
@@ -294,6 +324,7 @@ ULONG DEVAPI SKF_ReadFile(
|
||||
BYTE *pbOutData,
|
||||
ULONG *pulOutLen);
|
||||
|
||||
/* 7.4.7 */
|
||||
ULONG DEVAPI SKF_WriteFile(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szFileName,
|
||||
@@ -301,65 +332,71 @@ ULONG DEVAPI SKF_WriteFile(
|
||||
BYTE *pbData,
|
||||
ULONG ulSize);
|
||||
|
||||
/* 7.5.2 */
|
||||
ULONG DEVAPI SKF_CreateContainer(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szContainerName,
|
||||
HCONTAINER *phContainer);
|
||||
|
||||
/* 7.5.3 */
|
||||
ULONG DEVAPI SKF_DeleteContainer(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szContainerName);
|
||||
|
||||
ULONG DEVAPI SKF_EnumContainer(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szContainerName,
|
||||
ULONG *pulSize);
|
||||
|
||||
/* 7.5.4 */
|
||||
ULONG DEVAPI SKF_OpenContainer(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szContainerName,
|
||||
HCONTAINER *phContainer);
|
||||
|
||||
/* 7.5.5 */
|
||||
ULONG DEVAPI SKF_CloseContainer(
|
||||
HCONTAINER hContainer);
|
||||
|
||||
/* 7.5.6 */
|
||||
ULONG DEVAPI SKF_EnumContainer(
|
||||
HAPPLICATION hApplication,
|
||||
LPSTR szContainerName,
|
||||
ULONG *pulSize);
|
||||
|
||||
/* 7.5.7 */
|
||||
ULONG DEVAPI SKF_GetContainerType(
|
||||
HCONTAINER hContainer,
|
||||
ULONG *pulContainerType);
|
||||
|
||||
/* 7.5.8 */
|
||||
ULONG DEVAPI SKF_ImportCertificate(
|
||||
HCONTAINER hContainer,
|
||||
BOOL bExportSignKey,
|
||||
BYTE *pbCert,
|
||||
ULONG ulCertLen);
|
||||
|
||||
/* 7.5.9 */
|
||||
ULONG DEVAPI SKF_ExportCertificate(
|
||||
HCONTAINER hContainer,
|
||||
BOOL bSignFlag,
|
||||
BYTE *pbCert,
|
||||
ULONG *pulCertLen);
|
||||
|
||||
ULONG DEVAPI SKF_ExportPublicKey(
|
||||
HCONTAINER hContainer,
|
||||
BOOL bSignFlag,
|
||||
BYTE *pbBlob,
|
||||
ULONG *pulBlobLen);
|
||||
|
||||
/* 7.6.2 */
|
||||
ULONG DEVAPI SKF_GenRandom(
|
||||
DEVHANDLE hDev,
|
||||
BYTE *pbRandom,
|
||||
ULONG ulRandomLen);
|
||||
|
||||
ULONG DEVAPI SKF_GenRSAKeyPair(
|
||||
HCONTAINER hContainer,
|
||||
ULONG ulBitsLen,
|
||||
RSAPUBLICKEYBLOB *pBlob);
|
||||
|
||||
/* 7.6.3 */
|
||||
ULONG DEVAPI SKF_GenExtRSAKey(
|
||||
DEVHANDLE hDev,
|
||||
ULONG ulBitsLen,
|
||||
RSAPRIVATEKEYBLOB *pBlob);
|
||||
|
||||
/* 7.6.4 */
|
||||
ULONG DEVAPI SKF_GenRSAKeyPair(
|
||||
HCONTAINER hContainer,
|
||||
ULONG ulBitsLen,
|
||||
RSAPUBLICKEYBLOB *pBlob);
|
||||
|
||||
/* 7.6.5 */
|
||||
ULONG DEVAPI SKF_ImportRSAKeyPair(
|
||||
HCONTAINER hContainer,
|
||||
ULONG ulSymAlgId,
|
||||
@@ -368,6 +405,7 @@ ULONG DEVAPI SKF_ImportRSAKeyPair(
|
||||
BYTE *pbEncryptedData,
|
||||
ULONG ulEncryptedDataLen);
|
||||
|
||||
/* 7.6.6 */
|
||||
ULONG DEVAPI SKF_RSASignData(
|
||||
HCONTAINER hContainer,
|
||||
BYTE *pbData,
|
||||
@@ -375,6 +413,7 @@ ULONG DEVAPI SKF_RSASignData(
|
||||
BYTE *pbSignature,
|
||||
ULONG *pulSignLen);
|
||||
|
||||
/* 7.6.7 */
|
||||
ULONG DEVAPI SKF_RSAVerify(
|
||||
DEVHANDLE hDev,
|
||||
RSAPUBLICKEYBLOB *pRSAPubKeyBlob,
|
||||
@@ -383,6 +422,7 @@ ULONG DEVAPI SKF_RSAVerify(
|
||||
BYTE *pbSignature,
|
||||
ULONG ulSignLen);
|
||||
|
||||
/* 7.6.8 */
|
||||
ULONG DEVAPI SKF_RSAExportSessionKey(
|
||||
HCONTAINER hContainer,
|
||||
ULONG ulAlgId,
|
||||
@@ -391,6 +431,7 @@ ULONG DEVAPI SKF_RSAExportSessionKey(
|
||||
ULONG *pulDataLen,
|
||||
HANDLE *phSessionKey);
|
||||
|
||||
/* 7.6.9 */
|
||||
ULONG DEVAPI SKF_ExtRSAPubKeyOperation(
|
||||
DEVHANDLE hDev,
|
||||
RSAPUBLICKEYBLOB *pRSAPubKeyBlob,
|
||||
@@ -399,6 +440,7 @@ ULONG DEVAPI SKF_ExtRSAPubKeyOperation(
|
||||
BYTE *pbOutput,
|
||||
ULONG *pulOutputLen);
|
||||
|
||||
/* 7.6.10 */
|
||||
ULONG DEVAPI SKF_ExtRSAPriKeyOperation(
|
||||
DEVHANDLE hDev,
|
||||
RSAPRIVATEKEYBLOB *pRSAPriKeyBlob,
|
||||
@@ -407,28 +449,32 @@ ULONG DEVAPI SKF_ExtRSAPriKeyOperation(
|
||||
BYTE *pbOutput,
|
||||
ULONG *pulOutputLen);
|
||||
|
||||
/* 7.6.11 */
|
||||
ULONG DEVAPI SKF_GenECCKeyPair(
|
||||
HCONTAINER hContainer,
|
||||
ULONG ulAlgId,
|
||||
ECCPUBLICKEYBLOB *pBlob);
|
||||
|
||||
/* 7.6.12 */
|
||||
ULONG DEVAPI SKF_ImportECCKeyPair(
|
||||
HCONTAINER hContainer,
|
||||
ENVELOPEDKEYBLOB *pEnvelopedKeyBlob);
|
||||
|
||||
/* 7.6.13 */
|
||||
ULONG DEVAPI SKF_ECCSignData(
|
||||
HCONTAINER hContainer,
|
||||
BYTE *pbDigest,
|
||||
ULONG ulDigestLen,
|
||||
ECCSIGNATUREBLOB *pSignature);
|
||||
|
||||
/* Extension */
|
||||
/* Extension */
|
||||
ULONG DEVAPI SKF_ECCDecrypt(
|
||||
HCONTAINER hContainer,
|
||||
ECCCIPHERBLOB *pCipherBlob,
|
||||
BYTE *pbPlainText,
|
||||
ULONG *pulPlainTextLen);
|
||||
|
||||
/* 7.6.14 */
|
||||
ULONG DEVAPI SKF_ECCVerify(
|
||||
DEVHANDLE hDev,
|
||||
ECCPUBLICKEYBLOB *pECCPubKeyBlob,
|
||||
@@ -436,6 +482,7 @@ ULONG DEVAPI SKF_ECCVerify(
|
||||
ULONG ulDataLen,
|
||||
ECCSIGNATUREBLOB *pSignature);
|
||||
|
||||
/* 7.6.15 */
|
||||
ULONG DEVAPI SKF_ECCExportSessionKey(
|
||||
HCONTAINER hContainer,
|
||||
ULONG ulAlgId,
|
||||
@@ -443,6 +490,7 @@ ULONG DEVAPI SKF_ECCExportSessionKey(
|
||||
ECCCIPHERBLOB *pData,
|
||||
HANDLE *phSessionKey);
|
||||
|
||||
/* 7.6.16 */
|
||||
ULONG DEVAPI SKF_ExtECCEncrypt(
|
||||
DEVHANDLE hDev,
|
||||
ECCPUBLICKEYBLOB *pECCPubKeyBlob,
|
||||
@@ -450,6 +498,7 @@ ULONG DEVAPI SKF_ExtECCEncrypt(
|
||||
ULONG ulPlainTextLen,
|
||||
ECCCIPHERBLOB *pCipherText);
|
||||
|
||||
/* 7.6.17 */
|
||||
ULONG DEVAPI SKF_ExtECCDecrypt(
|
||||
DEVHANDLE hDev,
|
||||
ECCPRIVATEKEYBLOB *pECCPriKeyBlob,
|
||||
@@ -457,6 +506,7 @@ ULONG DEVAPI SKF_ExtECCDecrypt(
|
||||
BYTE *pbPlainText,
|
||||
ULONG *pulPlainTextLen);
|
||||
|
||||
/* 7.6.18 */
|
||||
ULONG DEVAPI SKF_ExtECCSign(
|
||||
DEVHANDLE hDev,
|
||||
ECCPRIVATEKEYBLOB *pECCPriKeyBlob,
|
||||
@@ -464,6 +514,7 @@ ULONG DEVAPI SKF_ExtECCSign(
|
||||
ULONG ulDataLen,
|
||||
ECCSIGNATUREBLOB *pSignature);
|
||||
|
||||
/* 7.6.19 */
|
||||
ULONG DEVAPI SKF_ExtECCVerify(
|
||||
DEVHANDLE hDev,
|
||||
ECCPUBLICKEYBLOB *pECCPubKeyBlob,
|
||||
@@ -471,6 +522,7 @@ ULONG DEVAPI SKF_ExtECCVerify(
|
||||
ULONG ulDataLen,
|
||||
ECCSIGNATUREBLOB *pSignature);
|
||||
|
||||
/* 7.6.20 */
|
||||
ULONG DEVAPI SKF_GenerateAgreementDataWithECC(
|
||||
HCONTAINER hContainer,
|
||||
ULONG ulAlgId,
|
||||
@@ -479,6 +531,7 @@ ULONG DEVAPI SKF_GenerateAgreementDataWithECC(
|
||||
ULONG ulIDLen,
|
||||
HANDLE *phAgreementHandle);
|
||||
|
||||
/* 7.6.21 */
|
||||
ULONG DEVAPI SKF_GenerateAgreementDataAndKeyWithECC(
|
||||
HANDLE hContainer,
|
||||
ULONG ulAlgId,
|
||||
@@ -491,6 +544,7 @@ ULONG DEVAPI SKF_GenerateAgreementDataAndKeyWithECC(
|
||||
ULONG ulSponsorIDLen,
|
||||
HANDLE *phKeyHandle);
|
||||
|
||||
/* 7.6.22 */
|
||||
ULONG DEVAPI SKF_GenerateKeyWithECC(
|
||||
HANDLE hAgreementHandle,
|
||||
ECCPUBLICKEYBLOB *pECCPubKeyBlob,
|
||||
@@ -499,6 +553,14 @@ ULONG DEVAPI SKF_GenerateKeyWithECC(
|
||||
ULONG ulIDLen,
|
||||
HANDLE *phKeyHandle);
|
||||
|
||||
/* 7.6.23 */
|
||||
ULONG DEVAPI SKF_ExportPublicKey(
|
||||
HCONTAINER hContainer,
|
||||
BOOL bSignFlag,
|
||||
BYTE *pbBlob,
|
||||
ULONG *pulBlobLen);
|
||||
|
||||
/* 7.6.24 */
|
||||
ULONG DEVAPI SKF_ImportSessionKey(
|
||||
HCONTAINER hContainer,
|
||||
ULONG ulAlgId,
|
||||
@@ -506,16 +568,19 @@ ULONG DEVAPI SKF_ImportSessionKey(
|
||||
ULONG ulWrapedLen,
|
||||
HANDLE *phKey);
|
||||
|
||||
/* 7.6.25 */
|
||||
ULONG DEVAPI SKF_SetSymmKey(
|
||||
DEVHANDLE hDev,
|
||||
BYTE *pbKey,
|
||||
ULONG ulAlgID,
|
||||
HANDLE *phKey);
|
||||
|
||||
/* 7.6.26 */
|
||||
ULONG DEVAPI SKF_EncryptInit(
|
||||
HANDLE hKey,
|
||||
BLOCKCIPHERPARAM EncryptParam);
|
||||
|
||||
/* 7.6.27 */
|
||||
ULONG DEVAPI SKF_Encrypt(
|
||||
HANDLE hKey,
|
||||
BYTE *pbData,
|
||||
@@ -523,6 +588,7 @@ ULONG DEVAPI SKF_Encrypt(
|
||||
BYTE *pbEncryptedData,
|
||||
ULONG *pulEncryptedLen);
|
||||
|
||||
/* 7.6.28 */
|
||||
ULONG DEVAPI SKF_EncryptUpdate(
|
||||
HANDLE hKey,
|
||||
BYTE *pbData,
|
||||
@@ -530,15 +596,18 @@ ULONG DEVAPI SKF_EncryptUpdate(
|
||||
BYTE *pbEncryptedData,
|
||||
ULONG *pulEncryptedLen);
|
||||
|
||||
/* 7.6.29 */
|
||||
ULONG DEVAPI SKF_EncryptFinal(
|
||||
HANDLE hKey,
|
||||
BYTE *pbEncryptedData,
|
||||
ULONG *pulEncryptedDataLen);
|
||||
|
||||
/* 7.6.30 */
|
||||
ULONG DEVAPI SKF_DecryptInit(
|
||||
HANDLE hKey,
|
||||
BLOCKCIPHERPARAM DecryptParam);
|
||||
|
||||
/* 7.6.31 */
|
||||
ULONG DEVAPI SKF_Decrypt(
|
||||
HANDLE hKey,
|
||||
BYTE *pbEncryptedData,
|
||||
@@ -546,6 +615,7 @@ ULONG DEVAPI SKF_Decrypt(
|
||||
BYTE *pbData,
|
||||
ULONG *pulDataLen);
|
||||
|
||||
/* 7.6.32 */
|
||||
ULONG DEVAPI SKF_DecryptUpdate(
|
||||
HANDLE hKey,
|
||||
BYTE *pbEncryptedData,
|
||||
@@ -553,11 +623,13 @@ ULONG DEVAPI SKF_DecryptUpdate(
|
||||
BYTE *pbData,
|
||||
ULONG *pulDataLen);
|
||||
|
||||
/* 7.6.33 */
|
||||
ULONG DEVAPI SKF_DecryptFinal(
|
||||
HANDLE hKey,
|
||||
BYTE *pbDecryptedData,
|
||||
ULONG *pulDecryptedDataLen);
|
||||
|
||||
/* 7.6.34 */
|
||||
ULONG DEVAPI SKF_DigestInit(
|
||||
DEVHANDLE hDev,
|
||||
ULONG ulAlgID,
|
||||
@@ -566,6 +638,7 @@ ULONG DEVAPI SKF_DigestInit(
|
||||
ULONG ulIDLen,
|
||||
HANDLE *phHash);
|
||||
|
||||
/* 7.6.35 */
|
||||
ULONG DEVAPI SKF_Digest(
|
||||
HANDLE hHash,
|
||||
BYTE *pbData,
|
||||
@@ -573,21 +646,25 @@ ULONG DEVAPI SKF_Digest(
|
||||
BYTE *pbHashData,
|
||||
ULONG *pulHashLen);
|
||||
|
||||
/* 7.6.36 */
|
||||
ULONG DEVAPI SKF_DigestUpdate(
|
||||
HANDLE hHash,
|
||||
BYTE *pbData,
|
||||
ULONG ulDataLen);
|
||||
|
||||
/* 7.6.37 */
|
||||
ULONG DEVAPI SKF_DigestFinal(
|
||||
HANDLE hHash,
|
||||
BYTE *pHashData,
|
||||
ULONG *pulHashLen);
|
||||
|
||||
/* 7.6.38 */
|
||||
ULONG DEVAPI SKF_MacInit(
|
||||
HANDLE hKey,
|
||||
BLOCKCIPHERPARAM *pMacParam,
|
||||
HANDLE *phMac);
|
||||
|
||||
/* 7.6.39 */
|
||||
ULONG DEVAPI SKF_Mac(
|
||||
HANDLE hMac,
|
||||
BYTE *pbData,
|
||||
@@ -595,16 +672,19 @@ ULONG DEVAPI SKF_Mac(
|
||||
BYTE *pbMacData,
|
||||
ULONG *pulMacLen);
|
||||
|
||||
/* 7.6.40 */
|
||||
ULONG DEVAPI SKF_MacUpdate(
|
||||
HANDLE hMac,
|
||||
BYTE *pbData,
|
||||
ULONG ulDataLen);
|
||||
|
||||
/* 7.6.41 */
|
||||
ULONG DEVAPI SKF_MacFinal(
|
||||
HANDLE hMac,
|
||||
BYTE *pbMacData,
|
||||
ULONG *pulMacDataLen);
|
||||
|
||||
/* 7.6.42 */
|
||||
ULONG DEVAPI SKF_CloseHandle(
|
||||
HANDLE hHandle);
|
||||
|
||||
|
||||
@@ -106,6 +106,10 @@ int SM9PublicKey_get_gmtls_encoded(SM9PublicParameters *mpk,
|
||||
|
||||
int SM9_signature_size(SM9PublicParameters *mpk);
|
||||
|
||||
SM9Signature *SM9_do_sign(const unsigned char *dgst, int dgstlen, SM9_KEY *sm9);
|
||||
int SM9_do_verify(const unsigned char *dgst, int dgstlen,
|
||||
const SM9Signature *sig, SM9_KEY *sm9);
|
||||
|
||||
int SM9_sign(int type,
|
||||
const unsigned char *data, size_t datalen,
|
||||
unsigned char *sig, size_t *siglen,
|
||||
@@ -174,18 +178,15 @@ int SM9_compute_share_key_B(int type,
|
||||
|
||||
|
||||
#ifndef OPENSSL_NO_STDIO
|
||||
|
||||
SM9MasterSecret *d2i_SM9MasterSecret_fp(FILE *fp, SM9MasterSecret **pp);
|
||||
SM9PublicParameters *d2i_SM9PublicParameters_fp(FILE *fp, SM9PublicParameters **pp);
|
||||
SM9PrivateKey *d2i_SM9PrivateKey_fp(FILE *fp, SM9PrivateKey **pp);
|
||||
SM9PublicKey *d2i_SM9PublicKey_fp(FILE *fp, SM9PublicKey **pp);
|
||||
SM9Signature *d2i_SM9Signature_fp(FILE *fp, SM9Signature **pp);
|
||||
SM9Ciphertext *d2i_SM9Ciphertext_fp(FILE *fp, SM9Ciphertext **pp);
|
||||
|
||||
int i2d_SM9MasterSecret_fp(FILE *fp, SM9MasterSecret *a);
|
||||
int i2d_PublicParameters_fp(FILE *fp, SM9PublicParameters *a);
|
||||
int i2d_SM9PublicParameters_fp(FILE *fp, SM9PublicParameters *a);
|
||||
int i2d_SM9PrivateKey_fp(FILE *fp, SM9PrivateKey *a);
|
||||
int i2d_SM9PublicKey_fp(FILE *fp, SM9PublicKey *a);
|
||||
int i2d_SM9Signature_fp(FILE *fp, SM9Signature *a);
|
||||
int i2d_SM9Ciphertext_fp(FILE *fp, SM9Ciphertext *a);
|
||||
#endif
|
||||
@@ -209,7 +210,72 @@ DECLARE_ASN1_FUNCTIONS(SM9Ciphertext)
|
||||
#define SM9PublicKey_new() SM9_KEY_new()
|
||||
#define SM9PublicKey_free(a) SM9_KEY_free(a)
|
||||
|
||||
# define EVP_PKEY_CTRL_SM9_PAIRING (EVP_PKEY_ALG_CTRL + 1)
|
||||
# define EVP_PKEY_CTRL_SM9_SCHEME (EVP_PKEY_ALG_CTRL + 2)
|
||||
# define EVP_PKEY_CTRL_SM9_HASH1 (EVP_PKEY_ALG_CTRL + 3)
|
||||
# define EVP_PKEY_CTRL_SM9_SIGN_SCHEME (EVP_PKEY_ALG_CTRL + 4)
|
||||
# define EVP_PKEY_CTRL_SM9_ENCRYPT_SCHEME (EVP_PKEY_ALG_CTRL + 5)
|
||||
# define EVP_PKEY_CTRL_SM9_ID (EVP_PKEY_ALG_CTRL + 6)
|
||||
# define EVP_PKEY_CTRL_GET_SM9_ID (EVP_PKEY_ALG_CTRL + 7)
|
||||
|
||||
# define EVP_PKEY_CTX_set_sm9_pairing(ctx, nid) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9_MASTER, \
|
||||
EVP_PKEY_OP_KEYGEN, \
|
||||
EVP_PKEY_CTRL_SM9_PAIRING, nid, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_get_sm9_pairing(ctx) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9_MASTER, \
|
||||
EVP_PKEY_OP_KEYGEN, \
|
||||
EVP_PKEY_CTRL_SM9_PAIRING, -2, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_set_sm9_scheme(ctx, nid) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9_MASTER, \
|
||||
EVP_PKEY_OP_KEYGEN, \
|
||||
EVP_PKEY_CTRL_SM9_SCHEME, nid, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_get_sm9_scheme(ctx) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9_MASTER, \
|
||||
EVP_PKEY_OP_KEYGEN, \
|
||||
EVP_PKEY_CTRL_SM9_SCHEME, -2, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_set_sm9_hash1(ctx, nid) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9_MASTER, \
|
||||
EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_SM9_HASH1, nid, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_get_sm9_hash1(ctx) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9_MASTER, \
|
||||
EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_SM9_HASH1, -2, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_set_sm9_encrypt_scheme(ctx, nid) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9_MASTER, \
|
||||
EVP_PKEY_OP_ENCRYPT, \
|
||||
EVP_PKEY_CTRL_SM9_ENCRYPT_SCHEME, nid, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_set_sm9_decrypt_scheme(ctx, nid) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9, \
|
||||
EVP_PKEY_OP_DECRYPT|EVP_PKEY_OP_ENCRYPT, \
|
||||
EVP_PKEY_CTRL_SM9_ENCRYPT_SCHEME, nid, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_set_sm9_sign_scheme(ctx, nid) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9, \
|
||||
EVP_PKEY_OP_SIGN|EVP_PKEY_OP_SIGNCTX| \
|
||||
EVP_PKEY_OP_VERIFY|EVP_PKEY_OP_VERIFYCTX, \
|
||||
EVP_PKEY_CTRL_SM9_SIGN_SCHEME, nid, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_set_sm9_verify_scheme(ctx, nid) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9_MASTER, \
|
||||
EVP_PKEY_OP_VERIFY|EVP_PKEY_OP_VERIFYCTX, \
|
||||
EVP_PKEY_CTRL_SM9_SIGN_SCHEME, nid, NULL)
|
||||
|
||||
# define EVP_PKEY_CTX_set_sm9_id(ctx, id) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9_MASTER, \
|
||||
EVP_PKEY_OP_KEYGEN, \
|
||||
EVP_PKEY_CTRL_SM9_ID, 0, (void *)id)
|
||||
|
||||
# define EVP_PKEY_CTX_get_sm9_id(ctx, pid) \
|
||||
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_SM9_MASTER, \
|
||||
EVP_PKEY_OP_KEYGEN, \
|
||||
EVP_PKEY_CTRL_GET_SM9_ID, 0, (void *)pid)
|
||||
|
||||
/* BEGIN ERROR CODES */
|
||||
/*
|
||||
@@ -222,77 +288,81 @@ int ERR_load_SM9_strings(void);
|
||||
/* Error codes for the SM9 functions. */
|
||||
|
||||
/* Function codes. */
|
||||
# define SM9_F_OLD_SM9_MASTER_DECODE 124
|
||||
# define SM9_F_OLD_SM9_PRIV_DECODE 125
|
||||
# define SM9_F_SM9CIPHERTEXT_CHECK 100
|
||||
# define SM9_F_SM9ENCPARAMETERS_DECRYPT 101
|
||||
# define SM9_F_SM9ENCPARAMETERS_ENCRYPT 102
|
||||
# define SM9_F_SM9ENCPARAMETERS_GENERATE_MAC 103
|
||||
# define SM9_F_SM9ENCPARAMETERS_GET_KEY_LENGTH 104
|
||||
# define SM9_F_SM9PUBLICPARAMETERS_GET_POINT_SIZE 105
|
||||
# define SM9_F_SM9_COMPUTE_SHARE_KEY_A 122
|
||||
# define SM9_F_SM9_COMPUTE_SHARE_KEY_B 123
|
||||
# define SM9_F_SM9_DECRYPT 106
|
||||
# define SM9_F_SM9_DO_DECRYPT 107
|
||||
# define SM9_F_SM9_DO_ENCRYPT 108
|
||||
# define SM9_F_SM9_ENCRYPT 109
|
||||
# define SM9_F_SM9_EXTRACT_PRIVATE_KEY 110
|
||||
# define SM9_F_SM9_EXTRACT_PUBLIC_PARAMETERS 111
|
||||
# define SM9_F_SM9_GENERATE_KEY_EXCHANGE 121
|
||||
# define SM9_F_SM9_GENERATE_MASTER_SECRET 112
|
||||
# define SM9_F_SM9_KEY_NEW 132
|
||||
# define SM9_F_OLD_SM9_MASTER_DECODE 100
|
||||
# define SM9_F_OLD_SM9_PRIV_DECODE 101
|
||||
# define SM9_F_PKEY_SM9_COPY 102
|
||||
# define SM9_F_PKEY_SM9_CTRL 103
|
||||
# define SM9_F_PKEY_SM9_CTRL_STR 104
|
||||
# define SM9_F_PKEY_SM9_DECRYPT 105
|
||||
# define SM9_F_PKEY_SM9_ENCRYPT 106
|
||||
# define SM9_F_PKEY_SM9_INIT 107
|
||||
# define SM9_F_PKEY_SM9_KEYGEN 108
|
||||
# define SM9_F_PKEY_SM9_MASTER_COPY 109
|
||||
# define SM9_F_PKEY_SM9_MASTER_CTRL 110
|
||||
# define SM9_F_PKEY_SM9_MASTER_CTRL_STR 111
|
||||
# define SM9_F_PKEY_SM9_MASTER_ENCRYPT 112
|
||||
# define SM9_F_PKEY_SM9_MASTER_INIT 113
|
||||
# define SM9_F_PKEY_SM9_MASTER_KEYGEN 114
|
||||
# define SM9_F_PKEY_SM9_MASTER_VERIFY 115
|
||||
# define SM9_F_PKEY_SM9_SIGN 116
|
||||
# define SM9_F_PKEY_SM9_VERIFY 117
|
||||
# define SM9_F_SM9_COMPUTE_SHARE_KEY_A 118
|
||||
# define SM9_F_SM9_COMPUTE_SHARE_KEY_B 119
|
||||
# define SM9_F_SM9_DECRYPT 120
|
||||
# define SM9_F_SM9_ENCRYPT 121
|
||||
# define SM9_F_SM9_EXTRACT_PUBLIC_PARAMETERS 122
|
||||
# define SM9_F_SM9_GENERATE_KEY_EXCHANGE 123
|
||||
# define SM9_F_SM9_GENERATE_MASTER_SECRET 124
|
||||
# define SM9_F_SM9_KEY_NEW 125
|
||||
# define SM9_F_SM9_MASTER_DECODE 126
|
||||
# define SM9_F_SM9_MASTER_ENCODE 127
|
||||
# define SM9_F_SM9_MASTER_KEY_EXTRACT_KEY 134
|
||||
# define SM9_F_SM9_MASTER_KEY_NEW 133
|
||||
# define SM9_F_SM9_PARAMS_DECODE 128
|
||||
# define SM9_F_SM9_PRIV_DECODE 129
|
||||
# define SM9_F_SM9_PRIV_ENCODE 130
|
||||
# define SM9_F_SM9_PUB_DECODE 131
|
||||
# define SM9_F_SM9_SIGN 119
|
||||
# define SM9_F_SM9_SIGNFINAL 115
|
||||
# define SM9_F_SM9_SIGNINIT 116
|
||||
# define SM9_F_SM9_UNWRAP_KEY 113
|
||||
# define SM9_F_SM9_VERIFY 120
|
||||
# define SM9_F_SM9_VERIFYFINAL 117
|
||||
# define SM9_F_SM9_VERIFYINIT 118
|
||||
# define SM9_F_SM9_WRAP_KEY 114
|
||||
# define SM9_F_SM9_MASTER_KEY_EXTRACT_KEY 128
|
||||
# define SM9_F_SM9_MASTER_KEY_NEW 129
|
||||
# define SM9_F_SM9_PARAMS_DECODE 130
|
||||
# define SM9_F_SM9_PRIV_DECODE 131
|
||||
# define SM9_F_SM9_PRIV_ENCODE 132
|
||||
# define SM9_F_SM9_PUB_DECODE 133
|
||||
# define SM9_F_SM9_SIGN 134
|
||||
# define SM9_F_SM9_SIGNFINAL 135
|
||||
# define SM9_F_SM9_SIGNINIT 136
|
||||
# define SM9_F_SM9_UNWRAP_KEY 137
|
||||
# define SM9_F_SM9_VERIFY 138
|
||||
# define SM9_F_SM9_VERIFYFINAL 139
|
||||
# define SM9_F_SM9_VERIFYINIT 140
|
||||
# define SM9_F_SM9_WRAP_KEY 141
|
||||
|
||||
/* Reason codes. */
|
||||
# define SM9_R_BUFFER_TOO_SMALL 100
|
||||
# define SM9_R_DECODE_ERROR 132
|
||||
# define SM9_R_DIGEST_FAILURE 119
|
||||
# define SM9_R_EC_LIB 101
|
||||
# define SM9_R_EXTENSION_FIELD_ERROR 120
|
||||
# define SM9_R_GENERATE_MAC_FAILURE 102
|
||||
# define SM9_R_HASH_FAILURE 103
|
||||
# define SM9_R_INVALID_CIPHERTEXT 104
|
||||
# define SM9_R_INVALID_DIGEST_TYPE 130
|
||||
# define SM9_R_INVALID_ENCPARAMETERS 105
|
||||
# define SM9_R_INVALID_HASH1 106
|
||||
# define SM9_R_INVALID_HASH2_DIGEST 126
|
||||
# define SM9_R_INVALID_ID 107
|
||||
# define SM9_R_INVALID_ID_LENGTH 108
|
||||
# define SM9_R_INVALID_INPUT 109
|
||||
# define SM9_R_INVALID_KEM_KEY_LENGTH 128
|
||||
# define SM9_R_INVALID_KEY_AGREEMENT_CHECKSUM 131
|
||||
# define SM9_R_INVALID_KEY_LENGTH 110
|
||||
# define SM9_R_INVALID_MD 111
|
||||
# define SM9_R_INVALID_PAIRING_TYPE 112
|
||||
# define SM9_R_INVALID_PARAMETER 113
|
||||
# define SM9_R_INVALID_POINTPPUB 121
|
||||
# define SM9_R_INVALID_PRIVATE_POINT 122
|
||||
# define SM9_R_INVALID_SCHEME 114
|
||||
# define SM9_R_INVALID_SIGNATURE 123
|
||||
# define SM9_R_INVALID_SIGNATURE_FORMAT 127
|
||||
# define SM9_R_INVALID_TYPE1CURVE 115
|
||||
# define SM9_R_KDF_FAILURE 116
|
||||
# define SM9_R_NO_MASTER_SECRET 133
|
||||
# define SM9_R_PAIRING_ERROR 124
|
||||
# define SM9_R_RATE_PAIRING_ERROR 129
|
||||
# define SM9_R_TWIST_CURVE_ERROR 117
|
||||
# define SM9_R_VERIFY_FAILURE 125
|
||||
# define SM9_R_ZERO_ID 118
|
||||
# define SM9_R_DECODE_ERROR 100
|
||||
# define SM9_R_DIGEST_FAILURE 101
|
||||
# define SM9_R_EC_LIB 102
|
||||
# define SM9_R_EXTENSION_FIELD_ERROR 103
|
||||
# define SM9_R_IDENTITY_REQUIRED 104
|
||||
# define SM9_R_ID_OR_MASTER_SECRET_REQUIRED 105
|
||||
# define SM9_R_INVALID_DIGEST_TYPE 106
|
||||
# define SM9_R_INVALID_ENCRYPT_SCHEME 107
|
||||
# define SM9_R_INVALID_HASH1 108
|
||||
# define SM9_R_INVALID_HASH2_DIGEST 109
|
||||
# define SM9_R_INVALID_ID 110
|
||||
# define SM9_R_INVALID_KEM_KEY_LENGTH 111
|
||||
# define SM9_R_INVALID_KEY_AGREEMENT_CHECKSUM 112
|
||||
# define SM9_R_INVALID_KEY_USAGE 113
|
||||
# define SM9_R_INVALID_PAIRING 114
|
||||
# define SM9_R_INVALID_PAIRING_TYPE 115
|
||||
# define SM9_R_INVALID_POINTPPUB 116
|
||||
# define SM9_R_INVALID_PRIVATE_POINT 117
|
||||
# define SM9_R_INVALID_SCHEME 118
|
||||
# define SM9_R_INVALID_SIGNATURE 119
|
||||
# define SM9_R_INVALID_SIGNATURE_FORMAT 120
|
||||
# define SM9_R_INVALID_SIGN_MD 121
|
||||
# define SM9_R_INVALID_SIGN_SCHEME 122
|
||||
# define SM9_R_INVALID_SM9_SCHEME 123
|
||||
# define SM9_R_NO_MASTER_SECRET 124
|
||||
# define SM9_R_PAIRING_ERROR 125
|
||||
# define SM9_R_RATE_PAIRING_ERROR 126
|
||||
# define SM9_R_SIGNER_ID_REQUIRED 127
|
||||
# define SM9_R_TWIST_CURVE_ERROR 128
|
||||
# define SM9_R_VERIFY_FAILURE 129
|
||||
# define SM9_R_ZERO_ID 130
|
||||
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user