Changes in Version 22.1 (1 January 2024):
Changes in Version 22.0 (23 October 2023):
ECC_MakeKeys
.
SIG_SignData
, CMS signed-data objects using
CMS_MakeSigData
,
and for signing X509 certificates using
X509_MakeCert
.
ECC_DHSharedSecret
,
and an X448 key can be included in an X.509 certificate using
X509_MakeCert
.
CIPHER_EncryptAEAD
and in creating a CMS AuthEnvelopedData object using
CMS_MakeEnvData
.
HPKE_LabeledExtract
,
HPKE_LabeledExpand
and
HPKE_DerivePrivateKey
.
See Hybrid Public Key Encryption (HPKE).
PBE_Scrypt
and
PBE_ScryptHex
and their equivalent .NET Pbe Class
methods.
ECC_SaveKey
so as to always save private EC keys with the equivalent public key included.
"PKCS8 ONE ASYMMETRIC KEY"
to
ASN1_Type
when detecting a PKCS#8 v2 OneAsymmetricKey private key object.
PFX_MakeFile
(like P12 files used by SET in Paraguay).
ASN1_TextDump
to display the object lengths more clearly.
Changes in Version 21.0.11 (11 June 2023):
X509_ReadCertStringFromPFX
to read "double-encrypted" P12/PFX file as issued by CAs in Paraguay.
Changes in Version 21.0 (1 January 2023):
XOF_Bytes
and equivalent .NET method Xof.Bytes
to provide eXtendable-Output Functions of any length using SHAKE128 and SHAKE256 as per [FIPS202]
and MGF1-SHA-* as per [PKCS#1].
PRF_Bytes
and equivalent .NET method Prf.Bytes
to produce pseudorandom output of any length using KMAC128 and KMAC256 as per NIST SP800-185 [SP800-185].
CIPHER_FileEncrypt
and CIPHER_FileDecrypt
(.NET: Cipher.FileEncrypt Method
,
Cipher.FileDecrypt Method
).
Use this option to encrypt and decrypt files using AES-GCM.
CIPHER_EncryptBytes
,
CIPHER_DecryptBytes
,
CIPHER_EncryptHex
and
CIPHER_DecryptHex
.
CIPHER_FileEncrypt
to prevent input file being
accidentally overwritten.CNV_ShortPathName
to help handle filenames with "International" characters.
See Filenames with "International" characters.
PKI_FormatErrorMessage
to return a formatted error message string for the last error.
RSA_ReadAnyPublicKey
(.NET Rsa.ReadPublicKey Method
).
initials
,
generationQualifier
,
dnQualifier
and
pseudonym
.
These complete the list of "SHOULD support" standard attribute types in section 4.1.2.4 of [RFC5280].
cRLDistributionPoints
extension to the X.509 Extensions Parameter.
Changes in Version 20.6 (10 September 2022):
CMS_MakeEnvData
(.NET: Cms.MakeEnvData Method
).
Changes in Version 20.5 (18 July 2022):
CMS_MakeEnvData
[FromBytes
][FromString
]
(.NET: Cms.MakeEnvData Method
)
CMS_MakeEnvData
[FromBytes
][FromString
].
smimeCapabilities
extension to an X.509 certificate. See X.509 Extensions Parameter.
Changes in Version 20.4 (24 April 2022):
brainpoolP256r1
, brainpoolP384r1
, and brainpoolP512r1
.
These ECC curves are supported in X.509 certificates and CMS SignedData objects,
as well as in the standard ECC key generation and management and signature functions using ECDSA.
RSA_ReadAnyPrivateKey
,
RSA_ReadAnyPublicKey
,
ECC_ReadPrivateKey
, and
ECC_ReadPublicKey
.
This is an advanced option to turn off encryption security for internal keys and allow the key strings to be used between separate processes.
Do not use unless you know what you are doing. It is not available in .NET or C++ (STL) interfaces.
Changes in Version 20.3 (8 January 2022):
std::string
and std::vector
objects.
RSA_MakeKeysXtd
and RSA_SaveEncKey
which simplify the parameters and options when saving encrypted keys.CNV_Utf8FromWide
which maps a UTF-16 (wide character) string to a UTF-8-encoded string.
This is specifically for C and C++ programmers using wide (wchar_t
) characters and strings.
X509.OutputOpts.UTF8String
with X509.OutputOpts.Unicode
.
This option will output a distinguished name in Unicode character set (UTF-8 or UTF-16 as appropriate).
X509.TextDump
where LDAP option was ignored.Changes in Version 20.2 (3 October 2021):
basCrPKI.bas
.
The old files basCrPKI64.bas
, basCrPKI64_32.bas
and basCrPKIWrappers.bas
are no longer needed and indeed must not be used. See Using with Classic Visual Basic VB6 and VBA.
Cms.QuerySigData Method
)
to extract information from CMS signed-data objects,
namely signatureValue
, DigestOfSignedAttrs
, DigestOfeContent
and signingCertHash
.
Cms.MakeSigData Method
with the Cms.SigDataOptions.PseudoSig
option,
and the Cms.MakeSigDataFromPseudo Method
.
CIPHER_EncryptBytes
and
CIPHER_DecryptBytes
to replace deprecated
CIPHER_EncryptBytes2
and
CIPHER_DecryptBytes2
.
This has no effect on .NET methods or the VBA wrapper functions (it just gets rid of that "2").
Mid
function does for a string.
Changes in Version 20.1 (13 March 2021):
Changes in Version 20.0 (17 October 2020):
Ecc.DHSharedSecret Method
.
Cipher.Encrypt Method
and Cipher.Decrypt Method
).
Rsa.FromXMLString method
) to read XML data with prefixes.
keyUsage=noncritical
to force keyUsage attributes in a new X.509 certificate to be non-critical.
SigAlgorithm
option
together with specific X509.CertOptions
,
X509.CrlOptions
or
X509.CsrOptions
).
Changes in Version 12.4 (12 May 2020):
Cms.MakeSigData Method
).
See Additional Security Attributes.
Cms.SigDataOptions.AddSigningCertificate
) to add an ESS Signing Certificate to the signed attributes.Cms.SigDataOptions.AddAlgProtection
) to add an Algorithm Protection Attribute [RFC6211] to the signed attributes.Cms.VerifySigData
) to carry out additional validation when
signed attributes in a CMS signed-data object contain an ESS Signing Certificate or Algorithm Protection Attribute.
HASsigningCertificate
and HASalgorithmProtection
to CMS_QuerySigData (Cms.QuerySigData
).
PKI_ModuleInfo
(.NET General.ModuleInfo Method
)
to show additional information about the core DLL module, e.g. "Licensed Developer Edition".
Changes in Version 12.3 (6 March 2020):
RNG_Guid
(.NET Rng.Guid Method
)
to generate a random 36-character Global Unique IDentifier (GUID) string.
X509.MakeCert Method
and
X509.CertRequest Method
)
to do the following:
extKeyUsage
extension purposes in the X.509 Extensions Parameter,
with an option to mark the extension critical.pbeWithSHAAnd3-KeyTripleDES-CBC
algorithm
(.NET X509.ReadCertStringFromPFX Method
and
X509.GetCertFromPFX Method
).
pbeWithSHAAnd3-KeyTripleDES-CBC
.
(.NET StrongCert
option for the Pfx.MakeFile Method
).
PrefixIV
option for
Cipher.Encrypt Method
and
Cipher.Decrypt Method
).
Changes in Version 12.2 (24 March 2019):
RSA_ReadAnyPrivateKey
and
RSA_ReadAnyPublicKey
(.NET Rsa.ReadPrivateKey Method
and Rsa.ReadPublicKey Method
).
The key may be provided either in a JSON file or as a JSON string. No password is required.
See the example in RSA_ReadAnyPublicKey
.
CMS_ReadSigData
and its string/byte variants now read content from any CMSVersion (previously only version 1).CMS_MakeSigData
and CMS_MakeEnvData
to accept lists of X.509 certificates in a PKCS#7 certificate chain file (.p7c/.p7b).
Cms.ReadOptions
for
Cms.ReadSigDataToFile Method
and
Cms.ReadEnvDataToFile Method
.
This allows the use of the BigFile
option when reading large CMS files.
Cms.Options Enumeration
.
X509_GetCertCountInP7Chain
(.NET Cms.GetCertCountInP7Chain Method
)
as a cleaner function to help in extracting X.509 certificates from a PKCS#7 certificate chain file.
Changes in Version 12.1 (17 November 2018):
CIPHER_EncryptAEAD
and CIPHER_DecryptAEAD
(.NET Cipher.EncryptAEAD Method
and
Cipher.DecryptAEAD Method
).
X509_ReadCertStringFromPFX
(.NET X509.ReadCertStringFromPFX Method
)
to extract X.509 certificate details directly from PFX/PKCS12 data into memory.
X509_ReadCertStringFromP7Chain
(.NET X509.ReadCertStringFromP7Chain Method
)
to extract X.509 certificate details directly from P7 certificate chain data into memory.
CMS_ReadEnvData
and CMS_ReadEnvDataToString
(.NET Cms.ReadEnvDataToFile Method
and
Cms.ReadEnvDataToString Method
).
ASN1_TextDump
to catch obscure error when parsing random octet strings.
CIPHER_Bytes
function. Use safer functions
CIPHER_EncryptBytes2
and CIPHER_DecryptBytes2
instead.
(No effect for .NET methods.)
CIPHER_EncryptBytes2
and CIPHER_DecryptBytes2
to handle NULL and zero-length inputs more consistently.
Changes in Version 12.0 (20 June 2018):
X509_MakeCert
(.NET
X509.MakeCert Method
).
X509_MakeCRL
,
(.NET
X509.MakeCRL Method
).
X509_CertRequest
(.NET
X509.CertRequest Method
).
X509_VerifyCert
(.NET
X509.VerifyCert Method
).
X509_ValidatePath
(.NET
X509.ValidatePath Method
).
CMS_MakeSigData
and CMS_VerifySigData
(.NET
Cms.MakeSigData Method
,
Cms.VerifySigData Method
).
CMS_MakeEnvData
and CMS_ReadEnvData
(.NET
Cms.MakeEnvData Method
,
Cms.ReadEnvDataToFile Method
).
RSA_Encrypt
and RSA_Decrypt
(.NET Rsa.Encrypt Method
and
Rsa.Decrypt Method
)
to encrypt and decrypt short messages using
the RSA encryption schemes from PKCS#1, including RSAES-OAEP.
ECC_ReadPublicKey
(.NET Ecc.ReadPublicKey Method
).
X509_MakeCert
and X509_CertRequest
(.NET X509.MakeCert Method
,
X509.CertRequest Method
).
X509_VerifyCert
(.NET
X509.VerifyCert Method
).
\<hex><hex>
) to insert 8-bit octets in an attribute value,
see Specifying Distinguished Names.
X509_MakeCert
(.NET X509.MakeCert Method
).
See Add an arbitrary X.509 Extension. This allows you, for example, to add a video of your cat to an X.509 certificate :-).
X509_QueryCert
(useful for checking the parameters of RSA-PSS signatures).COMPR_Compress
and COMPR_Uncompress
functions
to compress and uncompress data using zlib compression
(.NET Compr.Compress Method
and Compr.Uncompress Method
).
WIPE_File
(.NET Wipe.File Method
),
and added option to overwrite with a single pass of zero bytes (quicker but less secure).X509_TextDumpToString
function
(.NET X509.TextDumpToString Method
)
to dump details of X.509 certificate (or a CRL or a PKCS#10 CSR) directly to a string.
ASN1_TextDumpToString
function
(.NET Asn1.TextDumpToString Method
)
to dump details of ASN.1 formatted data directly to a string.
X509_VerifyCert
, X509_ValidatePath
,
X509_CheckCertInCRL
, and X509_CertIsValidNow
with consistent error codes.
All these functions now return 0 on success (as before) or a specific nonzero error code on failure.
More details of any error can usually be found using PKI_LastError
.
X509.Options Enumeration
.CIPHER_EncryptBytesPad
and CIPHER_DecryptBytesPad
. Use instead
CIPHER_EncryptBytes2
and
CIPHER_DecryptBytes2
.
This has no effect on .NET methods.
Pfx.MakeFile
with obsolete Boolean parameter. diCrPKI.h
and the public constants in basCrPKI.bas
.
This is important if you have written an interface that hardcodes the option values. If you use the defined C macros or public VBA constants, it should not be an issue.
Changes in Version 11.2 (8 August 2017):
ECC_MakeKeys
and ECC_SaveEncKey
so "prf" option works in szParams parameter, e.g. "prf=hmacWithSHA256;".RSA_ToXMLStringEx
function
(.NET Rsa.ToXMLString Method
)
which allows adding namespace prefix before element names, e.g. <ds:RSAKeyValue>.
ECC_KeyHashCode
function
(.NET Ecc.KeyHashCode Method
)
to give a 32-bit hash value for an ECC private or public key.PKI_Platform
function
(.NET General.Platform Method
)
to give operating platform "Win32" or "X64" directly.X509_TextDump
to display distinguished name in LDAP form and serial number in decimal.ASN1_TextDump
and ASN1_Type
now accept a plain base64 text file as input.Changes in Version 11.1 (20 May 2016):
CIPHER_EncryptBytes2
and
CIPHER_DecryptBytes2
as safer replacements for
CIPHER_EncryptBytesPad
and
CIPHER_DecryptBytesPad
(since withdrawn in v12.0)
with explicit checks for lengths of key and IV byte arrays.
These new safer functions are now used internally in the equivalent .NET Cipher class
methods.
CIPHER_FileEncrypt
and
CIPHER_FileDecrypt
as safer replacements for the now-deprecated
CIPHER_File
with explicit checks for lengths of key and IV byte arrays.
In addition, these new functions allow the user to specify the type of padding used for ECB and CBC modes
(previously only PKCS5Padding),
and give the option to prepend the IV to the ciphertext data.
Cipher.BlockBytes Method
and
Cipher.KeyBytes Method
to return the correct sizes in bytes of the cipher block and key for a given block cipher algorithm.
CNV_BytesFromHexStr
and
CNV_BytesFromB64Str
to be stricter and return an error if any obviously invalid characters are found (formerly they were just ignored).
Whitespace characters are still allowed in both hex and base64 strings, and ASCII punctuation characters in a hex string.
So, for example, the hex string "DE:AD:BE:EF"
is still OK,
but characters in the range [G-Zg-z]
in a hex string now cause an error.
PFX_VerifySig
.OCSP_MakeRequest
.
Space characters and an odd number of hex digits are now accepted correctly.
Changes in Version 11.0 (8 March 2016):
secp256k1
.SIG
functions
and Sig class
methods.
CNV_ReverseBytes
. For .NET
Cnv.ReverseBytes
CNV_NumFromBytes
and CNV_NumToBytes
. For .NET
Cnv.NumFromBytes
and Cnv.NumToBytes
CNV_Base58FromBytes
and CNV_Base58ToBytes
. For .NET
Cnv.ToBase58
and Cnv.FromBase58
HASH(HASH(m))
),
and the Bitcoin160 algorithm (RIPEMD160(SHA256(m))
).
X509_CertRequest
.
serialNumber
as a decimal integer when using the X.509 Extension Parameter.
X509_MakeCert
so when importing from an existing certificate signing request (CSR) it will copy
the exact distinguished name and any keyUsage or subjectAltName extensions in the CSR file.
ASN1_TextDump
and X509_TextDump
to display more information about unexpected ASN.1 objects (i.e., to display the ASN.1 value in hex instead of ignoring it).
Cnv.CheckUTF8 Method (String)
.
See Deprecated and obsolete UTF-8 functions.
Changes in Version 10.0 (27 March 2015):
RSA_ReadAnyPrivateKey
and RSA_ReadAnyPublicKey
to read private and public keys from almost "any" supported format into an internal key string.
SIG_SignData
and SIG_SignFile
to create RSA signatures in one step.
The output is a base64-encoded string suitable for
a <SignatureValue>
node in an XML-DSIG document.
SIG_VerifyData
and SIG_VerifyFile
to verify RSA signatures in base64-encoded form.
RSA_KeyValue
to extract a base64-encoded RSA key value from
an internal key string.
The output is a base64-encoded string suitable for a <RSAKeyValue>
node in an XML-DSIG document.
CMS_MakeComprData
and CMS_ReadComprData
to create and read CMS compressed-data (.p7z) files.
SMIME_Wrap
and Smime.Wrap
method
to create an S/MIME file from binary CMS signed-data, enveloped-data and compressed-data objects.
SMIME_Extract
and Smime.Extract
method
to extract the body from an S/MIME file.
SMIME_Query
and Smime.Query
method
to query an S/MIME file for header information.
ASN1_TextDump
and ASN1_Type
to analyze and check the type of ASN.1 objects.
The corresponding .NET methods are
Asn1.TextDump Method
and Asn1.Type Method
.
X509_MakeCert
, X509_MakeCertSelf
and X509_CertRequest
functions.
See X.509 Extensions Parameter.
X509_GetCertFromPFX
function
or new X509.GetP7ChainFromPFX
method.
PKI_CMS_BIGFILE
option to the CMS_MakeSigData
,
CMS_ReadSigData
and CMS_VerifySigData
functions
to process large signed-data files more efficiently.
Cms.QueryEnvData Method (String, String, Boolean) Cms.QuerySigData Method (String, String, Boolean) Cms.GetSigDataDigest Method (String, String, Boolean) Cms.ReadSigDataToFile Method (String, String, Boolean) Cms.ReadSigDataToString Method (String, Boolean) Cms.VerifySigData Method (String, String, String, Boolean)
Changes in Version 3.10 (2 September 2014):
CIPHER_EncryptBytesPad
and CIPHER_DecryptBytesPad
which use the specified block cipher algorithm,
mode and padding to encrypt and decrypt data in a byte array. Padding is added if required before encryption and removed after decryption.
The equivalent .NET methods are
Cipher.Encrypt Method
and
Cipher.Decrypt Method
PAD_*
functions
and
Cipher.Pad
and
Cipher.Unpad
methods.
PBE_Kdf2
and PBE_Kdf2Hex
to derive a key of any length from a password using the PBKDF2 algorithm
from PKCS#5.
The equivalent .NET methods are
Pbe.Kdf2
and
Pbe.Kdf2 (Int32, String, String, Int32)
.
Cms.MakeEnvData Method
(String, String, String, CipherAlgorithm, Cms.EnvDataOptions)
and
Cms.MakeEnvDataFromString Method
(String, String, String, CipherAlgorithm, Cms.EnvDataOptions)
to simplify using AES as the content encryption algorithm.
PKI_Version
to return a five-digit number of the form
Major * 10000 + Minor * 100 + Release
. For example, version 3.10.1 will return the number 31001
whereas version 3.9.4 would have returned 394.
Changes in Versions 3.9.1 to 3.9.4 (4 October 2012 to 9 October 2013):
RNG_Initialize
to always create a new seed file, even if one does not exist
(the previous behaviour was to fail with an error if the seed file did not exist).
PKI_X509_DECIMAL
option in
X509_CertSerialNumber
and
X509_QueryCert
.
rc2CBC
mode in CMS_ReadEnvData
.
Changes in Version 3.9 (8 September 2012):
PKI_X509_LDAP
to the functions
X509_CertIssuerName
,
X509_CertSubjectName
and
X509_QueryCert
to display the distinguished name in LDAP string form as per [RFC4514].
This is intended to help users who wish to create an <X509IssuerName>
or <X509SubjectName>
element
within an <X509Data>
in an XML-DSIG document.
For more details see LDAP String Representation of Distinguished Names.
PKI_X509_DECIMAL
to the functions
X509_CertSerialNumber
and
X509_QueryCert
to display the serial number in decimal form instead of hexadecimal.
Use to create an <X509SerialNumber>
element in XML-DSIG.
STREET
, UID
, GN
and TITLE
to supported attribute types
when specifying a distinguished name for an X.509 certificate.
encryptedContent
,
iv
and encryptedKey
to CMS_QueryEnvData
.
X509_MakeCert[Self]
.
RSA_EncodeMsg
in PKI_EMSIG_PKCSV1_5
mode.Changes in Version 3.8 (14 January 2012):
PFX_MakeFile
so it now creates PFX files in the exact format that OpenSSL creates
with weak 40-bit encryption of the certificate as default behaviour.
RSA_ReadPrivateKeyFromPFX
function to read a private key directly from
a PFX file into an internal key string.
Note that this is different from the existing RSA_GetPrivateKeyFromPFX
function which
just extracts the encrypted PKCS-8 file and saves it. We try to use the convention "Read" to mean read-into-internal-string
and "Get" to mean extract-and-save-as-a-file.
X509_GetCertFromPFX
to cope with encrypted certificates.
RSA_PublicKeyFromPrivate
function to convert an internal private key string
into a public one. This is useful if you only have a private key file like a PFX file.
Changes in Version 3.7 (1 July 2011):
CNV_CheckUTF8File
to check if a file
contains valid UTF-8 characters.
PKI_CMS_BIGFILE
option to the CMS_MakeEnvData
and CMS_ReadEnvData
to process large enveloped-data files more efficiently.
This option allows, in theory, files of unlimited length to be enveloped.
In addition, the 16 MB limit on the usual mode has been removed.
CMS_MakeEnvData
function
to fail if any of the specified certificate files are missing or corrupted.
CMS_MakeEnvData[FromString]
.
PKI_CMS_FORMAT_BASE64
/inputIsBase64
option in
functions that read base64-encoded CMS files like
CMS_ReadEnvData
,
CMS_ReadSigData
,
CMS_QueryEnvData
and
CMS_QuerySigData
.
These functions (and their .NET equivalents) will now detect the encoding of the input file automatically.
Cms.SigDataOptions
enumeration to provide advanced options and
complement the Cms.EnvDataOptions
enumeration.
CMS_MakeEnvData
and
CMS_MakeSigData
were meant to use SHA-2 but didn't.
RSA_MakeKeys
and RSA_SavePublicKey
.
The file is now saved in the exact same format as OpenSSL; i.e. "Unix" line endings and a line-length of 64 characters.
This is specifically to help users in Portugal with
the peculiar standards enforced by the DGCI (and should not make any difference to other users).
Changes in Version 3.6 (25 August 2010):
PAD_BytesBlock
and
PAD_HexBlock
to provide PKCS#5/#7 padding to encryption blocks and the equivalent functions to remove the padding,
PAD_UnpadBytes
and
PAD_UnpadHex
.
The corresponding .NET methods are
Cipher.Pad and
Cipher.Unpad.
CNV_Latin1FromUTF8Bytes
and
CNV_UTF8BytesFromLatin1
to handle UTF-8 encoded data correctly using byte arrays instead of strings.
These replace the deprecated functions
CNV_Latin1FromUTF8
and
CNV_UTF8FromLatin1
.
CNV_CheckUTF8Bytes
, and the corresponding method
Cnv.CheckUTF8(Byte[])
to replace the deprecated CNV_CheckUTF8
and Cnv.CheckUTF8(String).
See also UTF-8 and Latin-1.
CNV_ByteEncoding
and equivalent method
Cnv.ByteEncoding to convert encoding in a byte array between UTF-8 and Latin-1.
Changes in version 3.5 (2 May 2010):
X509_MakeCRL
function to make a basic X.509 certificate revocation list (CRL).
X509_CheckCertInCRL
function to check if a given X.509 certificate
has been revoked in an X.509 certificate revocation list (CRL).
OCSP_MakeRequest
function to
create an Online Certification Status Protocol (OCSP) request as a base64 string.
OCSP_ReadResponse
function to
read a response to an Online Certification Status Protocol (OCSP) request and output the main results in text form.
X509_TextDump
function to dump details of X.509 certificate (or a CRL or a PKCS10 CSR) to a text file.
X509_ValidatePath
function to validate a certificate path, either in the form of
a list of X.509 certificate filenames or in a PKCS7 "certs-only" certificate chain file (.p7b or .p7c).
X509_MakeCert
function
to allow the creation of a new X.509 certificate using a PKCS#10 Certificate Signing Request (CSR).
X509_VerifyCert
function
to also verify X.509 Certificate Revocation List (CRL) and PKCS#10 Certificate Signing Request (CSR) documents.
X509_QueryCert
function.
CMS_ReadEnvData[ToString]
and
CMS_ReadSigData[ToString]
functions, allowing the user to pass the data directly as a base64 string or PEM string;
and added the automatic detection of format for input files.
Changes in version 3.4 (19 December 2009):
Changes in version 3.3 (19 February 2009):
X509_MakeCert
and
X509MakeCertSelf
functions,
and added more options for distinguished names.
PEM_FileFromBinFile
and
PEM_FileToBinFile
functions to enable you to convert files between ASN.1 DER/BER binary format and PEM format.
WIPE_File
function
- up to three times faster for large files.
RSA_FromXMLString
function to allow the import of a restricted RSA private key from XML data consisting only of the
<Modulus>
, <Exponent>
and <D>
fields.
The resulting "internal" key string can be used to sign raw data but cannot be saved in a private key file.
This is useful to reproduce certain test vectors.
PKI_EMSIG_ISO9796
option to the RSA_EncodeMsg
and
RSA_DecodeMsg
functions to enable the user to encode and decode a message according to ISO/IEC 9796-1.
RSA_RawPrivate
and
RSA_RawPublic
functions to sign and decrypt RSA signatures using the "RSA2" method used in ISO/IEC 9796-1, ANSI X9.31 and P1363.
PKI_KEYGEN_INDICATE
option in RSA_MakeKeys()
so it does not clash with the des-EDE3-CBC block cipher option.
Changes in version 3.2 (2 February 2008):
CIPHER_Bytes
,
CIPHER_Hex
, and
CIPHER_File
.
HASH_HexFromHex
and HMAC_HexFromHex
functions.
"shaXXXWithRSAEncryption"
with SHA-224/256/384/512
for
X509_MakeCert
[Self]
and
X509_CertRequest
.
CMS_MakeSigData
[FromString]
.
CMS_MakeEnvData
[FromString]
.
RSA_KemWrap
and
RSA_KemUnwrap
which will wrap (encrypt) and unwrap (decrypt)
secret keying data for a recipient with the recipient's RSA key using the
RSA-KEM ("Simple RSA") algorithm.
[Withdrawn in v3.4].
CIPHER_KeyWrap
and CIPHER_KeyUnwrap
using AES-wrap and Triple DES wrap.
RSA_SaveEncPrivateKey
and
RSA_ReadEncPrivateKey
functions.
CMS_QueryEnvData
function,
and included the ability to pass a base64- or PEM-encoded certificate list to
CMS_MakeEnvData
and
CMS_MakeSigData
.
Changes in version 3.1 (2 August 2007):
X509_MakeCert
or X509_MakeCertSelf
.
See Specifying Distinguished Names for more details.
RSA_KeyMatch
function to verify that a pair of RSA private and public key strings are matched.
TDEA_File
.
To prevent accidental misuse, if an error occurs when using this function, the output file will now not exist.
CMS_MakeEnvData
function to conform with the
PKI requirements of the German Health System.
Changes in version 3.0 (27 March 2007):
RSA_KeyHashCode
function to allow comparison of internal key strings.
HASH
functions.HMAC
functions to compute a keyed hash value,
HMAC_HexFromBytes
and
HMAC_Bytes
.
X509_KeyUsageFlags
and
X509_QueryCert
.
X509_ReadStringFromFile
and
X509_SaveFileFromString
.
Changes in version 2.9 (12 August 2006):
CMS_MakeSigDataFromSigValue
function to create a SignedData
object directly from a pre-computed signature value.
CNV_CheckUTF8
function to check whether a string contains only valid UTF-8 characters.TDEA_BytesMode
.
RNG_Number
function to generate
a random number in a given range.
Changes in version 2.8 (26 April 2006):
X509_GetCertFromP7Chain
and
X509_GetCertFromPFX
.
CMS_VerifySigData
and
CMS_QuerySigData
functions.
nMajor
and nMinor
in
PKI_Version
.
Changes in version 2.7 (11 December 2005):
X509_VerifyCert()
can now verify certificates signed using DSA.
RSA_ReadEncPrivateKey()
to read PKCS#8 files encrypted with RC2.
CMS_ReadEnvData()
and
CMS_ReadEnvDataToString()
more tolerant of different input formats, including adding support to read
data encrypted with RC2.RSA_MakeKeys()
and
RSA_SaveEncPrivateKey()
.
RSA_MakeKeys()
.
X509_MakeCert()
and
X509_MakeCertSelf()
UTF8String
and to decode multi-byte distinguished names
into 8-bit ASCII, if possible.