security_handler.h
Go to the documentation of this file.
1 /*!**********************************************************************
2  *
3  * @copyright Copyright (C) 2016 Siemens Aktiengesellschaft.\n
4  * All rights reserved.
5  *
6  *************************************************************************
7  *
8  * @file security_handler.h
9  * @date Jun 27, 2016
10  * @brief Security handler module header file.
11  *
12  * This module presents security related operations. Used by upper layer modules. Works as an intermediate layer between upper
13  * level modules and underlying implementations. For actual security operation implementations please check security.h
14  *
15  ************************************************************************/
16 
17 #ifndef SECURITY_HANDLER_H_
18 #define SECURITY_HANDLER_H_
19 
20 #include "string_type.h"
21 
25 typedef struct rsa_t
26 {
27  char *public_key;
29  char *private_key;
33 } rsa_t;
34 
43 typedef struct security_handler_t
44 {
57 
69 
84 
99 
116 E_MCL_ERROR_CODE security_handler_hmac_sha256(security_handler_t *security_handler, const mcl_uint8_t *data, mcl_size_t data_size, mcl_uint8_t **hash, mcl_size_t *hash_size);
117 
131 
144 E_MCL_ERROR_CODE security_handler_base64_encode(const mcl_uint8_t *data, mcl_size_t data_size, string_t **encoded_data);
145 
163 E_MCL_ERROR_CODE security_handler_base64_decode(const string_t *encoded_data, mcl_uint8_t **decoded_data, mcl_size_t *decoded_data_size);
164 
179 
197 E_MCL_ERROR_CODE security_handler_rsa_sign(char *rsa_key, char *data, mcl_size_t data_size, mcl_uint8_t **signature, mcl_size_t *signature_size);
198 
205 void security_handler_destroy(security_handler_t **security_handler);
206 
207 #endif //SECURITY_HANDLER_H_
mcl_uint8_t * onboarding_key
Onboarding key.
mcl_size_t private_key_length
Private key length.
mcl_size_t session_key_length
Session key length.
E_MCL_ERROR_CODE
MCL Error code definitions. Every function returning an error code uses this enum values...
Definition: mcl_common.h:137
E_MCL_ERROR_CODE security_handler_generate_jti(string_t **jti)
To be used to generate the jti nonce.
string_t * access_token
Access token.
char * public_key
Public key.
uint8_t mcl_uint8_t
Definition: mcl_common.h:43
E_MCL_ERROR_CODE security_handler_generate_rsa_key(security_handler_t *security_handler)
To be used to generate the RSA public/private key pairs.
string_t * client_secret
Client secret.
char * private_key
Private key.
string_t * registration_access_token
Registration access token.
rsa_t rsa
Rsa handle.
E_MCL_ERROR_CODE security_handler_hash_sha256(const mcl_uint8_t *data, mcl_size_t data_size, mcl_uint8_t **hash, mcl_size_t *hash_size)
To be used to generate the sha256 hash of the given data.
mcl_uint8_t * session_key
Session key.
string_t * last_token_time
The time at which the last access token is received.
E_MCL_ERROR_CODE security_handler_hmac_sha256(security_handler_t *security_handler, const mcl_uint8_t *data, mcl_size_t data_size, mcl_uint8_t **hash, mcl_size_t *hash_size)
mcl_uint8_t * hmac_key
Hmac key.
size_t mcl_size_t
Definition: mcl_common.h:38
mcl_uint8_t * authentication_key
Authentication key.
Handle struct for security_handler module.
E_MCL_ERROR_CODE security_handler_rsa_sign(char *rsa_key, char *data, mcl_size_t data_size, mcl_uint8_t **signature, mcl_size_t *signature_size)
To be used to sign data with RSA key.
E_MCL_ERROR_CODE security_handler_base64_encode(const mcl_uint8_t *data, mcl_size_t data_size, string_t **encoded_data)
To be used to encode the given data in base64 encoding format.
RSA Pair Struct holding public and private and session keys.
string_t * registration_client_uri
Registration client uri.
String type module header file.
void security_handler_destroy(security_handler_t **security_handler)
To destroy the Security Handler.
mcl_size_t public_key_length
Public key length.
E_MCL_ERROR_CODE security_handler_initialize(security_handler_t **security_handler)
Initializer of security handler.
E_MCL_ERROR_CODE security_handler_base64_url_encode(const mcl_uint8_t *data, mcl_size_t data_size, string_t **encoded_data)
To be used to encode the given data in base64 URL encoding format.
string_t * client_id
Client id.
E_MCL_ERROR_CODE security_handler_base64_decode(const string_t *encoded_data, mcl_uint8_t **decoded_data, mcl_size_t *decoded_data_size)
mcl_size_t authentication_key_size
Size of authentication key.