aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/nRF5_SDK_15.0.0_a53641a/external/nrf_cc310/include/ccsw_crys_rsa_shared_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/nRF5_SDK_15.0.0_a53641a/external/nrf_cc310/include/ccsw_crys_rsa_shared_types.h')
-rw-r--r--thirdparty/nRF5_SDK_15.0.0_a53641a/external/nrf_cc310/include/ccsw_crys_rsa_shared_types.h144
1 files changed, 144 insertions, 0 deletions
diff --git a/thirdparty/nRF5_SDK_15.0.0_a53641a/external/nrf_cc310/include/ccsw_crys_rsa_shared_types.h b/thirdparty/nRF5_SDK_15.0.0_a53641a/external/nrf_cc310/include/ccsw_crys_rsa_shared_types.h
new file mode 100644
index 0000000..4b1e39f
--- /dev/null
+++ b/thirdparty/nRF5_SDK_15.0.0_a53641a/external/nrf_cc310/include/ccsw_crys_rsa_shared_types.h
@@ -0,0 +1,144 @@
+/**************************************************************************************
+* Copyright (c) 2016-2017, ARM Limited or its affiliates. All rights reserved *
+* *
+* This file and the related binary are licensed under the following license: *
+* *
+* ARM Object Code and Header Files License, v1.0 Redistribution. *
+* *
+* Redistribution and use of object code, header files, and documentation, without *
+* modification, are permitted provided that the following conditions are met: *
+* *
+* 1) Redistributions must reproduce the above copyright notice and the *
+* following disclaimer in the documentation and/or other materials *
+* provided with the distribution. *
+* *
+* 2) Unless to the extent explicitly permitted by law, no reverse *
+* engineering, decompilation, or disassembly of is permitted. *
+* *
+* 3) Redistribution and use is permitted solely for the purpose of *
+* developing or executing applications that are targeted for use *
+* on an ARM-based product. *
+* *
+* DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
+* CONTRIBUTORS "AS IS." ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT *
+* NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, *
+* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE *
+* COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *
+* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED *
+* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
+**************************************************************************************/
+
+
+#ifndef SW_CRYS_RSA_SHARED_TYPES_H
+#define SW_CRYS_RSA_SHARED_TYPES_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+/** @file
+ * @brief This file contains the types for the CCSW RSA module.
+ */
+
+/************************ Defines ******************************/
+
+/************************************************************************/
+/* the following definitions are only relevant for RSA code on SW */
+/************************************************************************/
+/* Define the maximal allowed width of the exponentiation sliding window
+in range 2...6. This define is actual for projects on soft platform.
+To minimize code size use the minimum value. To optimize performance
+choose the maximum value */
+
+/* The valid key size in bits */
+#define SW_CRYS_RSA_MIN_VALID_KEY_SIZE_VALUE_IN_BITS 512
+
+#ifndef CRYS_NO_RSA_MAX_KEY_SIZE_4096_BIT_SUPPORT
+#define SW_CRYS_RSA_MAX_VALID_KEY_SIZE_VALUE_IN_BITS 4096
+#define SW_CRYS_RSA_MAX_KEY_GENERATION_SIZE_BITS 4096
+#else
+#ifndef CRYS_NO_RSA_MAX_KEY_SIZE_3072_BIT_SUPPORT
+#define SW_CRYS_RSA_MAX_VALID_KEY_SIZE_VALUE_IN_BITS 3072
+#define SW_CRYS_RSA_MAX_KEY_GENERATION_SIZE_BITS 3072
+#else
+#define SW_CRYS_RSA_MAX_VALID_KEY_SIZE_VALUE_IN_BITS 2048
+#define SW_CRYS_RSA_MAX_KEY_GENERATION_SIZE_BITS 2048
+#endif
+#endif
+
+
+
+
+
+/* Define the size of the exponentiation temp buffer, used in LLF_PKI exponentiation and NON DEPENDED on
+ width of the sliding window. The size defined in units equaled to maximal RSA modulus size */
+#define PKI_EXP_CONST_TEMP_BUFF_SIZE_IN_MODULUS_UNITS 7
+
+#define PKI_EXP_SLIDING_WINDOW_MAX_VALUE 2
+
+ /* The maximum buffer size for the 'H' value */
+#define SW_CRYS_RSA_MAXIMUM_MOD_BUFFER_SIZE_IN_WORDS ((SW_CRYS_RSA_MAX_VALID_KEY_SIZE_VALUE_IN_BITS + 64UL ) / 32 )
+
+
+/* definition of PKI_KEY_GEN_TEMP_BUFF_SIZE_WORDS IS DEPENDED on width of the sliding window*/
+#if( PKI_EXP_SLIDING_WINDOW_MAX_VALUE > 2 )
+#define PKI_KEY_GEN_TEMP_BUFF_SIZE_WORDS \
+ ((4 + (1<<(PKI_EXP_SLIDING_WINDOW_MAX_VALUE-2))) * SW_CRYS_RSA_MAXIMUM_MOD_BUFFER_SIZE_IN_WORDS)
+#else
+#define PKI_KEY_GEN_TEMP_BUFF_SIZE_WORDS \
+ (16 * SW_CRYS_RSA_MAXIMUM_MOD_BUFFER_SIZE_IN_WORDS)
+#endif
+
+#ifndef PKI_EXP_WINDOW_TEMP_BUFFER_SIZE_IN_MODULUS_UNITS
+#define PKI_EXP_WINDOW_TEMP_BUFFER_SIZE_IN_MODULUS_UNITS (3 + (1 << (PKI_EXP_SLIDING_WINDOW_MAX_VALUE-1)))
+#endif
+
+
+/* Define the size of the temp buffer, used in LLF_PKI exponentiation and DEPENDED on
+ width of the sliding window in words */
+#if (PKI_EXP_CONST_TEMP_BUFF_SIZE_IN_MODULUS_UNITS > PKI_EXP_WINDOW_TEMP_BUFFER_SIZE_IN_MODULUS_UNITS )
+#define PKI_EXP_TEMP_BUFFER_SIZE_IN_WORDS \
+ (PKI_EXP_CONST_TEMP_BUFF_SIZE_IN_MODULUS_UNITS * SW_CRYS_RSA_MAXIMUM_MOD_BUFFER_SIZE_IN_WORDS + 2 )
+#else
+#define PKI_EXP_TEMP_BUFFER_SIZE_IN_WORDS \
+ (PKI_EXP_WINDOW_TEMP_BUFFER_SIZE_IN_MODULUS_UNITS * SW_CRYS_RSA_MAXIMUM_MOD_BUFFER_SIZE_IN_WORDS + 2 )
+#endif
+
+/* the RSA data type */
+typedef struct SW_Shared_CRYS_RSAPrimeData_t {
+ /* The aligned input and output data buffers */
+ uint32_t DataIn[SW_CRYS_RSA_MAXIMUM_MOD_BUFFER_SIZE_IN_WORDS];
+ uint32_t DataOut[SW_CRYS_RSA_MAXIMUM_MOD_BUFFER_SIZE_IN_WORDS];
+
+ /* #include specific fields that are used by the low level */
+ struct {
+ union {
+ struct { /* Temporary buffers used for the exponent calculation */
+ uint32_t Tempbuff1[PKI_EXP_TEMP_BUFFER_SIZE_IN_WORDS];
+ uint32_t Tempbuff2[SW_CRYS_RSA_MAXIMUM_MOD_BUFFER_SIZE_IN_WORDS * 2];
+ /* Temporary buffer for self-test support */
+ uint32_t TempBuffer[SW_CRYS_RSA_MAXIMUM_MOD_BUFFER_SIZE_IN_WORDS];
+ }NonCrt;
+
+ struct { /* Temporary buffers used for the exponent calculation */
+ uint32_t Tempbuff1[PKI_EXP_TEMP_BUFFER_SIZE_IN_WORDS];
+ uint32_t Tempbuff2[SW_CRYS_RSA_MAXIMUM_MOD_BUFFER_SIZE_IN_WORDS * 2];
+ }Crt;
+ }Data;
+ }LLF;
+
+}SW_Shared_CRYS_RSAPrimeData_t;
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif