nrfxlib API 3.3.99
Loading...
Searching...
No Matches
ocrypto_aes_cbc_pkcs.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016 - 2025 Nordic Semiconductor ASA
3 * Copyright (c) since 2013 Oberon microsystems AG
4 *
5 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
6 */
7
8
28#ifndef OCRYPTO_AES_CBC_PKCS_H
29#define OCRYPTO_AES_CBC_PKCS_H
30
31#include <stddef.h>
32#include <stdint.h>
33
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39
41typedef struct {
42 uint32_t xkey[60];
43 uint8_t iv[16];
44 uint8_t buffer[16];
45 uint8_t length;
46 uint8_t key_size;
47 uint8_t decrypt;
48 uint8_t iv_set;
49} ocrypto_aes_cbc_pkcs_ctx;
77 ocrypto_aes_cbc_pkcs_ctx *ctx,
78 const uint8_t *key, size_t size,
79 const uint8_t iv[16],
80 int decrypt);
81
96size_t ocrypto_aes_cbc_pkcs_output_size(ocrypto_aes_cbc_pkcs_ctx *ctx, size_t in_len);
97
121 ocrypto_aes_cbc_pkcs_ctx *ctx,
122 uint8_t *out,
123 const uint8_t *in, size_t in_len);
124
131void ocrypto_aes_cbc_pkcs_final_enc(ocrypto_aes_cbc_pkcs_ctx *ctx, uint8_t ct[16]);
132
153int ocrypto_aes_cbc_pkcs_final_dec(ocrypto_aes_cbc_pkcs_ctx *ctx, uint8_t *pt, size_t *pt_len);
170 uint8_t* ct,
171 const uint8_t* pt, size_t pt_len,
172 const uint8_t *key, size_t size,
173 const uint8_t iv[16]);
174
193 uint8_t *pt, size_t *pt_len,
194 const uint8_t *ct, size_t ct_len,
195 const uint8_t *key, size_t size,
196 const uint8_t iv[16]);
197
198
199#ifdef __cplusplus
200}
201#endif
202
203#endif
204
int ocrypto_aes_cbc_pkcs_final_dec(ocrypto_aes_cbc_pkcs_ctx *ctx, uint8_t *pt, size_t *pt_len)
void ocrypto_aes_cbc_pkcs_init(ocrypto_aes_cbc_pkcs_ctx *ctx, const uint8_t *key, size_t size, const uint8_t iv[16], int decrypt)
int ocrypto_aes_cbc_pkcs_decrypt(uint8_t *pt, size_t *pt_len, const uint8_t *ct, size_t ct_len, const uint8_t *key, size_t size, const uint8_t iv[16])
void ocrypto_aes_cbc_pkcs_final_enc(ocrypto_aes_cbc_pkcs_ctx *ctx, uint8_t ct[16])
void ocrypto_aes_cbc_pkcs_update(ocrypto_aes_cbc_pkcs_ctx *ctx, uint8_t *out, const uint8_t *in, size_t in_len)
size_t ocrypto_aes_cbc_pkcs_output_size(ocrypto_aes_cbc_pkcs_ctx *ctx, size_t in_len)
void ocrypto_aes_cbc_pkcs_encrypt(uint8_t *ct, const uint8_t *pt, size_t pt_len, const uint8_t *key, size_t size, const uint8_t iv[16])