ndn-lite
sign-on-basic-ecc-256-sec.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) Edward Lu
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v3.0. See the file LICENSE in the top level
6  * directory for more details.
7  *
8  * See AUTHORS.md for complete list of NDN IOT PKG authors and contributors.
9  */
10 
11 #ifndef SIGN_ON_BASIC_ECC_256_SEC_H
12 #define SIGN_ON_BASIC_ECC_256_SEC_H
13 
14 #include <stdint.h>
15 #include <stddef.h>
16 
19 int sign_on_basic_ecc_256_gen_sha256_hash(const uint8_t *payload, uint32_t payload_len, uint8_t *output);
20 
28 int sign_on_basic_ecc_256_decrypt_kd_pri(uint8_t *key, uint32_t key_len, const uint8_t *encrypted_payload,
29  uint32_t encrypted_payload_len, uint8_t *decrypted_payload,
30  uint32_t decrypted_payload_buf_len,
31  uint32_t *decrypted_payload_len);
32 
38 int sign_on_basic_ecc_256_vrfy_btstrp_rqst_rspns_sig(const uint8_t *payload, uint32_t payload_len,
39  const uint8_t *sig, uint32_t sig_len,
40  const uint8_t *key, uint32_t key_len);
41 
48 int sign_on_basic_ecc_256_vrfy_cert_rqst_rspns_sig(const uint8_t *payload, uint32_t payload_len,
49  const uint8_t *sig, uint32_t sig_len,
50  const uint8_t *key, uint32_t key_len);
51 
59 int sign_on_basic_ecc_256_gen_btstrp_rqst_sig(const uint8_t *pri_key,
60  const uint8_t *payload, uint32_t payload_len,
61  uint8_t *output_buf, uint32_t output_buf_len,
62  uint32_t *output_len);
63 
71 int sign_on_basic_ecc_256_gen_cert_rqst_sig(const uint8_t *pri_key,
72  const uint8_t *payload, uint32_t payload_len,
73  uint8_t *output_buf, uint32_t output_buf_len,
74  uint32_t *output_len);
75 
82 int sign_on_basic_ecc_256_gen_fin_msg_sig(const uint8_t *pri_key,
83  const uint8_t *payload, uint32_t payload_len,
84  uint8_t *output_buf, uint32_t output_buf_len,
85  uint32_t *output_len);
86 
94 int sign_on_basic_ecc_256_gen_n1_keypair(uint8_t *pub_key_buf, uint32_t pub_key_buf_len,
95  uint32_t *pub_key_output_len,
96  uint8_t *pri_key_buf, uint32_t pri_key_buf_len,
97  uint32_t *pri_key_output_len);
98 
106 int sign_on_basic_ecc_256_gen_kt(const uint8_t *pub_key, uint32_t pub_key_len,
107  const uint8_t *pri_key, uint32_t pri_key_len,
108  uint8_t *output_buf, uint32_t output_buf_len,
109  uint32_t *output_len);
110 
111 #endif // SIGN_ON_BASIC_ECC_256_SEC_H
int sign_on_basic_ecc_256_gen_sha256_hash(const uint8_t *payload, uint32_t payload_len, uint8_t *output)
Generate a sha256 hash.
Definition: sign-on-basic-ecc-256-sec.c:18
int sign_on_basic_ecc_256_vrfy_cert_rqst_rspns_sig(const uint8_t *payload, uint32_t payload_len, const uint8_t *sig, uint32_t sig_len, const uint8_t *key, uint32_t key_len)
The certificate request response signature should be an hmac sha256 signature.
Definition: sign-on-basic-ecc-256-sec.c:46
int sign_on_basic_ecc_256_gen_fin_msg_sig(const uint8_t *pri_key, const uint8_t *payload, uint32_t payload_len, uint8_t *output_buf, uint32_t output_buf_len, uint32_t *output_len)
The finish message signature should be an ecdsa sha256 signature.
Definition: sign-on-basic-ecc-256-sec.c:75
int sign_on_basic_ecc_256_gen_btstrp_rqst_sig(const uint8_t *pri_key, const uint8_t *payload, uint32_t payload_len, uint8_t *output_buf, uint32_t output_buf_len, uint32_t *output_len)
The bootstrapping request signature should be an ecdsa sha256 signature.
Definition: sign-on-basic-ecc-256-sec.c:53
int sign_on_basic_ecc_256_gen_n1_keypair(uint8_t *pub_key_buf, uint32_t pub_key_buf_len, uint32_t *pub_key_output_len, uint8_t *pri_key_buf, uint32_t pri_key_buf_len, uint32_t *pri_key_output_len)
The N1 key pair should be a pair of ecc keys, based on the "secp256r1" curve.
Definition: sign-on-basic-ecc-256-sec.c:86
int sign_on_basic_ecc_256_gen_cert_rqst_sig(const uint8_t *pri_key, const uint8_t *payload, uint32_t payload_len, uint8_t *output_buf, uint32_t output_buf_len, uint32_t *output_len)
The certificate request signature should be an ecdsa sha256 signature.
Definition: sign-on-basic-ecc-256-sec.c:64
int sign_on_basic_ecc_256_decrypt_kd_pri(uint8_t *key, uint32_t key_len, const uint8_t *encrypted_payload, uint32_t encrypted_payload_len, uint8_t *decrypted_payload, uint32_t decrypted_payload_buf_len, uint32_t *decrypted_payload_len)
The KD key pair private key should be encrypted using AES CBC with PCS5 padding.
Definition: sign-on-basic-ecc-256-sec.c:24
int sign_on_basic_ecc_256_gen_kt(const uint8_t *pub_key, uint32_t pub_key_len, const uint8_t *pri_key, uint32_t pri_key_len, uint8_t *output_buf, uint32_t output_buf_len, uint32_t *output_len)
The keys used to generate KT should be ecc keys, based on the "secp256r1" curve.
Definition: sign-on-basic-ecc-256-sec.c:97
int sign_on_basic_ecc_256_vrfy_btstrp_rqst_rspns_sig(const uint8_t *payload, uint32_t payload_len, const uint8_t *sig, uint32_t sig_len, const uint8_t *key, uint32_t key_len)
The bootstrapping request response signature should be an hmac sha256 signature.
Definition: sign-on-basic-ecc-256-sec.c:39