Mistake on this page?
Report an issue in GitHub or email us
crys_ecpki_kg.h
Go to the documentation of this file.
1 /**************************************************************************************
2 * Copyright (c) 2016-2017, ARM Limited or its affiliates. All rights reserved *
3 * *
4 * This file and the related binary are licensed under the following license: *
5 * *
6 * ARM Object Code and Header Files License, v1.0 Redistribution. *
7 * *
8 * Redistribution and use of object code, header files, and documentation, without *
9 * modification, are permitted provided that the following conditions are met: *
10 * *
11 * 1) Redistributions must reproduce the above copyright notice and the *
12 * following disclaimer in the documentation and/or other materials *
13 * provided with the distribution. *
14 * *
15 * 2) Unless to the extent explicitly permitted by law, no reverse *
16 * engineering, decompilation, or disassembly of is permitted. *
17 * *
18 * 3) Redistribution and use is permitted solely for the purpose of *
19 * developing or executing applications that are targeted for use *
20 * on an ARM-based product. *
21 * *
22 * DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
23 * CONTRIBUTORS "AS IS." ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT *
24 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, *
25 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE *
26 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED *
28 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
29 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
30 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
31 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
32 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
33 **************************************************************************************/
34 
35 
36 
37 #ifndef CRYS_ECPKI_KG_H
38 #define CRYS_ECPKI_KG_H
39 
40 /*! @file
41 @brief Defines the API for generation of ECC private and public keys.
42 @defgroup crys_ecpki_kg CryptoCell ECC Key Generation APIs
43 @{
44 @ingroup cryptocell_ecpki
45 */
46 
47 
48 #include "crys_error.h"
49 #include "crys_rnd.h"
50 #include "crys_ecpki_types.h"
51 
52 #ifdef __cplusplus
53 extern "C"
54 {
55 #endif
56 
57 /***************** CRYS_ECPKI_GenKeyPair function **********************/
58 /*!
59 @brief Generates a pair of private and public keys in internal representation according to [ANS X9.62].
60 
61 @return CRYS_OK on success.
62 @return A non-zero value on failure as defined crys_ecpki_error.h or crys_rnd_error.h
63 */
65  void *rndState_ptr, /*!< [in/out] Pointer to the RND state structure. */
66  SaSiRndGenerateVectWorkFunc_t rndGenerateVectFunc, /*!< [in] Pointer to the random vector generation function. */
67  const CRYS_ECPKI_Domain_t *pDomain, /*!< [in] Pointer to EC domain (curve). */
68  CRYS_ECPKI_UserPrivKey_t *pUserPrivKey, /*!< [out] Pointer to the private key structure. This structure is used as input to the
69  ECPKI cryptographic primitives. */
70  CRYS_ECPKI_UserPublKey_t *pUserPublKey, /*!< [out] Pointer to the public key structure. This structure is used as input to the
71  ECPKI cryptographic primitives. */
72  CRYS_ECPKI_KG_TempData_t *pTempData, /*!< [in] Temporary buffers for internal use, defined in ::CRYS_ECPKI_KG_TempData_t. */
73  CRYS_ECPKI_KG_FipsContext_t *pFipsCtx /*!< [in] Pointer to temporary buffer used in case FIPS certification if required. */
74 );
75 
76 
77 
78 #ifdef __cplusplus
79 }
80 #endif
81 /**
82 @}
83  */
84 #endif
85 
86 
87 
88 
CRYSError_t CRYS_ECPKI_GenKeyPair(void *rndState_ptr, SaSiRndGenerateVectWorkFunc_t rndGenerateVectFunc, const CRYS_ECPKI_Domain_t *pDomain, CRYS_ECPKI_UserPrivKey_t *pUserPrivKey, CRYS_ECPKI_UserPublKey_t *pUserPublKey, CRYS_ECPKI_KG_TempData_t *pTempData, CRYS_ECPKI_KG_FipsContext_t *pFipsCtx)
Generates a pair of private and public keys in internal representation according to [ANS X9...
Contains all of the enums and definitions that are used for the CRYS ECPKI APIs.
This file contains the CRYS APIs used for random number generation. The random-number generation modu...
uint32_t CRYSError_t
Definition: crys_error.h:253
uint32_t(* SaSiRndGenerateVectWorkFunc_t)(void *rndState_ptr, uint16_t outSizeBytes, uint8_t *out_ptr)
Definition: crys_rnd.h:206
This module defines the error return code types and the numbering spaces of the error codes for each ...
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.