Changes in Version 3.7 (June 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 cope more efficiently with large files.
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 (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:
X509_MakeCert and
X509Make_CertSelf 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:
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;
and added the block cipher key wrap functions
CIPHER_KeyWrap
and CIPHER_KeyUnwrap
using AES-wrap and Triple DES wrap.
(Note that the function name is [was] RSA_KemWrap, not KeyWrap.)
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:
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:
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:
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:
X509_GetCertFromP7Chain and
X509_GetCertFromPFX.
CMS_VerifySigData and
CMS_QuerySigData functions.
nMajor and nMinor in
PKI_Version.
Changes in version 2.7:
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.