Release Notes 07.08.19 RSA BSAFE® Crypto-C Micro Edition 4.1.4 Release Notes This document summarizes the features of RSA BSAFE Crypto-C Micro Edition 4.1.4 (Crypto-C ME). It outlines the changes, platform information, and resolved and known issues. For details of the Crypto-C ME End of Primary Support dates, see the Product Version Life Cycle Web site at https://community.rsa.com/docs/DOC-73366. Contents: New Features .......................................................................................
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes New Features This release of Crypto-C ME is designed to include the following new features: • Asymmetric key assurance and validation functions, R_PKEY_validate_init_PKEY() and R_CR_validate_key(), which allow parameters and keys to be checked for specific security requirements.
RSA BSAFE Crypto-C Micro Edition 4.1.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes • • • • 4 New RSA asymmetric key encryption algorithms, using the SHA3 message digest algorithms: – RSA PKCS #1 Optimal Asymmetric Encryption Padding (OAEP) using SHA3-224 – RSA PKCS #1 OAEP using SHA3-256 – RSA PKCS #1 OAEP using SHA3-384 – RSA PKCS #1 OAEP using SHA3-512.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes • • New HMAC Deterministic Random Bit Generator (HMAC DRBG) algorithms using the SHA3 message digest algorithms: – HMAC DRBG using SHA3-224 – HMAC DRBG using SHA3-256 – HMAC DRBG using SHA3-384 – HMAC DRBG using SHA3-512. Support added for Windows code signing FIPS dynamic libraries. Previously, code signing the Windows FIPS dynamic libraries broke the FIPS integrity check.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Changes This release of Crypto-C ME is designed to include the following changes: • Updated operating environment support. For more information, see Operating Environment Information. • Fixes for specific issues. For more information, see Enhancements and Resolved Issues. • The two separate signature files which were used for the FIPS 140-2 module integrity check are embedded into the main FIPS 140-2 module shared library file.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes • Namespace changes to achieve greater consistency with the rest of the source code. Specifically, the bio.h header file is renamed as r_bio.h. Migrate your applications to use the R_BIO_*() set of functions. The BIO_*() functions are deprecated, but will be removed in a future release.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes • Apple iOS platform no longer provides libraries for ARMv7S. If you were using ARMv7S, update your build configurations to use ARMv7 libraries instead. • An Installation Guide is no longer included in the documentation suite. Installation instructions are now incorporated into the Get Started with Crypto-C ME section of the RSA BSAFE Crypto-C Micro Edition Developers Guide.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Operating Environment Information The following table lists the operating environments Crypto-C ME is designed and tested to support, on either physical or virtual hosts, at the time of release. Note: Subsequent patches or hotfixes to this release of Crypto-C ME will be tested on and support the latest operating system patch levels, unless otherwise specified.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Table 1 Operating Environment Information (continued) CPU Architecture Compiler Version FIPS1 Package Name x86_64 Clang 4.0 Yes freebsd-x64-clang40 Android™ 8.0 ARMv8 Android NDK r10e and GCC 4.9 Yes android-multi-ndkr10e Android 7.1.1 ARMv8 Android NDK r10e and GCC 4.9 VA android-multi-ndkr10e Android 6.0 ARMv8 Android NDK r10e and GCC 4.9 VA android-multi-ndkr10e Operating System FreeBSD® Foundation FreeBSD 11.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Table 1 Operating Environment Information (continued) Operating System CPU Architecture Compiler Version FIPS1 Package Name LSB 4.0 and GCC 4.4 VA lsb40-x64-gcc4_4 Micro Focus (continued) SUSE Linux Enterprise Server 12 SP4 SUSE Linux Enterprise Server 12 SP3 SUSE Linux Enterprise Server 11 SP4 x86_64 x86 lsb40-x86-gcc4_4 PowerPC 64-bit GCC 4.8 ARMv8 GCC 4.8 x86_64 LSB 4.0 and GCC 4.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Table 1 Operating Environment Information (continued) Operating System CPU Architecture Compiler Version x86 Visual Studio 2017 (/MD) VA FIPS1 Package Name Microsoft (continued) Windows 8.
RSA BSAFE Crypto-C Micro Edition 4.1.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Table 1 Operating Environment Information (continued) CPU Architecture Compiler Version FIPS1 Package Name Enterprise Linux 7.4 ARMv8 GCC 4.8 VA linux-arm64l-gcc4_8 Enterprise Linux 6.10 x86_64 LSB 4.0 and GCC 4.4 VA lsb40-x64-gcc4_4 Enterprise Linux 5.8 IBM S/390®x 64-bit Operating System Red Hat (continued) x86 IBM S/390 31-bit 1For lsb40-x86-gcc4_4 LSB 3.0 and GCC 4.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes New Operating Environments This release of Crypto-C ME is designed to include support for new operating environments: • Apple: – iOS 12 on ARM64 and x86_64 – iOS 11 on ARM64 and x86_64 – iOS 10 on ARM64, ARMv7, x86_64, and x86 – macOS 10.13 and 10.12 on x86_64 and x86 • Canonical Ubuntu 16.04 LTS on x86_64, x86, and ARMv7 • FreeBSD 11.2 on x86_64 • Google Android 7.x on ARM64 • IBM AIX 7.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Note: Your RSA software license agreement might not grant you the right to develop applications on all of the platforms listed above. Contact your RSA sales representative for information on the development platforms covered by your license agreement and platform/field of use restrictions. Linux Standard Base The goal of the LSB project is to deliver interoperability between applications and the Linux operating system.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Microsoft Visual C++ Redistributable Packages For customers developing on a Microsoft Windows operating system, building applications using the Crypto-C ME libraries is supported (depending on the operating system) using Microsoft Visual Studio 2005, Visual Studio 2010, Visual Studio 2013, or Visual Studio 2017.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Algorithms and Key Sizes This section lists the FIPS 140-2-approved, FIPS 140-2-allowed, and non-FIPS 140-2-approved algorithms and key sizes for this release of Crypto-C ME. Note: The list of FIPS 140-2-approved and allowed algorithms is subject to change at any time according to the guidelines specified by NIST. It is the customer’s responsibility to keep up to date with approved and non-approved algorithms.
RSA BSAFE Crypto-C Micro Edition 4.1.
RSA BSAFE Crypto-C Micro Edition 4.1.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Table 2 Crypto-C ME FIPS 140-2-approved Algorithms (continued) Algorithm Type Random Bit Generator Algorithm and approved parameter/modulus/key sizes Standard CTR DRBG SP 800-90A Rev. 1 • AES-CTR mode with 128, 192, and 256-bit key sizes. HMAC DRBG Modes • SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256 • SHA3-224, SHA3-256, SHA3-384, SHA3-512 Symmetric Cipher SP 800-90A Rev.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes FIPS 140-2-allowed Algorithms The following table lists the FIPS 140-2-allowed algorithms for this release of Crypto-C ME. Table 3 Crypto-C ME FIPS 140-2-allowed Algorithms Algorithm Type Algorithm Standard Asymmetric Key DH 1 IEEE P-1363 • Key Pair Generation Domain Parameter Size sets: 2048 bits <= L <= 8192 bits and N >= 224 bits Key Agreement Primitives ECC IG D.8 FFC IG D.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Non-FIPS 140-2-approved Algorithms The following table lists the non-FIPS 140-2-approved algorithms and key sizes for this release of Crypto-C ME. Table 4 Crypto-C ME non-FIPS 140-2-approved Algorithms Algorithm Type Algorithm Asymmetric Key ECAES, ECIES Key Derivation Function SCrypt PBKDF1 Shamir's Secret Share Message Digest MD2, MD4 Message Authentication Code HMAC-MD5 Random Number Non-approved RNG (FIPS 186-2) Non-approved RNG (OTP).
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Elliptic Curve Support The following table lists the named elliptic curves this release of Crypto-C ME is designed to support for cryptographic operations in software and on PKCS #11 hardware devices. For more information, see Hardware Devices.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes FIPS 140-2 Operations Self Tests and Entropy A set of self tests are performed when the FIPS 140-2-validated cryptographic module is loaded by an application. These self tests access an internally created random cryptographic object. This random cryptographic object requires entropy to operate and if there is insufficient entropy, the cryptographic module fails to load.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Hardware Devices Crypto-C ME is designed to work on hardware device/operating system combinations that comply with the PKCS #11 Cryptographic Token Interface Standard, versions 2.01, 2.10, 2.11 and 2.20. The following table lists the PKCS #11 hardware devices and the operating system test environments for which this release of Crypto-C ME was tested. Note: Other hardware device/operating system combinations should work, but were not tested.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Cryptographic Operations on Hardware The following table lists the cryptographic and key operations on PKCS #11 hardware devices tested in this release of Crypto-C ME. These operations reflect the device capabilities.
RSA BSAFE Crypto-C Micro Edition 4.1.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Software Installation for Hardware Devices For instructions to properly install the required components for each device, see the device manufacturer’s documentation. PKCS #11 Provider Configuration PKCS #11 provider objects can be configured either programmatically through Crypto-C ME or using the RSA_CRYPTOCME_HDW_DLL environment variable in conjunction with the R_PROV_PKCS11_feature_config_from_env feature.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Enhancements and Resolved Issues The following table lists the enhancements and resolved issues in this release of Crypto-C ME. Table 8 Enhancements and Resolved Issues ID Description BSFCRYCME-2003 AIX FIPS shared libraries include search paths. BSFCRYCME-1985 New Bleichenbacher type side-channel attacks against RSA PKCS #1 v1.5 padding - CVE-2019-3731. BSFCRYCME-1982 Unsafe memory access when processing DSA signatures CVE-2019-3728.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Table 8 Enhancements and Resolved Issues (continued) ID Description BSFCRYCME-1732 Shamir's Secret Sharing doesn't support setting prime after initialization. BSFCRYCME-1731 Change default RSA key generation algorithm to FIPS 186-3. BSFCRYCME-1660 Implement approved safe-prime groups as defined in SP 800-56A. BSFCRYCME-1574 Hang when gathering entropy from CPU stats source. BSFCRYCME-1573 FIPS self-tests create a real random unnecessarily.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Table 8 32 Enhancements and Resolved Issues (continued) ID Description BSFCRYCME-1073 R_PKEY_public_cmp() does not compare all components of the BSFCRYCME-1065 R_PKEY_public_to_bio() fails for keys generated on PKCS #11 BSFCRYCME-1047 Configuration module uses too much dynamic memory. BSFCRYCME-910 R_PKEY objects do not check get/set of info items. BSFCRYCME-908 R_PKEY_public_from_* may contain private key fields. public key data. token.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Known Issues The following table lists the known issues in this release of Crypto-C ME. Workarounds are provided for the issues where possible. Table 9 Known Issues ID Description BSFCRYCME-2012 RSA decryption fails when plain text is only null bytes. BSFCRYCME-2011 Unable to generate DH and DSA parameters > 3072 bits, or < 1024 bits. BSFCRYCME-1987 PBKDF2 cannot use all approved digests in its HMAC operations.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Table 9 Known Issues (continued) ID Description BSFCRYCME-1041 The R_RES_LIB_ERROR_STRINGS resource has a string table that maps R_ERROR codes to string equivalents, but the table is missing some values and contains R_ERROR_BAD_PARAMETER, which is an offset value. BSFCRYCME-1036 R_PKEY_get_PEM_header() hides errors for PKCS #8 encoded keys. BSFCRYCME-1033 The R_LOCK API cannot return memory allocation errors.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Documentation The documentation provided with this release of Crypto-C ME includes: • This document, the RSA BSAFE Crypto-C Micro Edition Release Notes, in Portable Document Format (PDF), with the latest information on Crypto-C ME. • RSA BSAFE Crypto-C Micro Edition Migration Guide, in PDF, which describes the changes required to migrate existing applications from Crypto-C ME 3.x to the current version of Crypto-C ME.
RSA BSAFE Crypto-C Micro Edition 4.1.4 Release Notes Support and Service Access community and support information for your RSA BSAFE products on RSA Link at https://community.rsa.com/community/products/bsafe. RSA Link offers a knowledge base containing answers to common questions and solutions to known problems, product documentation, community discussions, and case management. Customers can also open support cases by sending an email to support@rsa.com. RSA Ready at https://community.rsa.