hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
 * Copyright (c) 2022 Rockchip Electronics Co. Ltd.
 */
 
#ifndef __RKCRYPTO_CORE_H__
#define __RKCRYPTO_CORE_H__
 
#include <stdint.h>
#include "rkcrypto_common.h"
 
RK_RES rk_crypto_init(void);
void rk_crypto_deinit(void);
RK_RES rk_cipher_init(const rk_cipher_config *config, rk_handle *handle);
RK_RES rk_cipher_crypt(rk_handle handle, int in_fd, int out_fd, uint32_t len);
RK_RES rk_cipher_crypt_virt(rk_handle handle, const uint8_t *in, uint8_t *out, uint32_t len);
RK_RES rk_cipher_final(rk_handle handle);
 
RK_RES rk_ae_init(const rk_ae_config *config, rk_handle *handle);
RK_RES rk_ae_set_aad(rk_handle handle, int aad_fd);
RK_RES rk_ae_set_aad_virt(rk_handle handle, uint8_t *aad_virt);
RK_RES rk_ae_crypt(rk_handle handle, int in_fd, int out_fd, uint32_t len, uint8_t *tag);
RK_RES rk_ae_crypt_virt(rk_handle handle, const uint8_t *in, uint8_t *out, uint32_t len,
           uint8_t *tag);
RK_RES rk_ae_final(rk_handle handle);
 
RK_RES rk_hash_init(const rk_hash_config *config, rk_handle *handle);
RK_RES rk_hash_update(rk_handle handle, int data_fd, uint32_t data_len);
RK_RES rk_hash_update_virt(rk_handle handle, const uint8_t *data, uint32_t data_len);
RK_RES rk_hash_final(rk_handle handle, uint8_t *hash);
 
RK_RES rk_rsa_pub_encrypt(const rk_rsa_pub_key_pack *pub, enum RK_RSA_CRYPT_PADDING padding,
             const uint8_t *in, uint32_t in_len, uint8_t *out, uint32_t *out_len);
RK_RES rk_rsa_priv_decrypt(const rk_rsa_priv_key_pack *priv, enum RK_RSA_CRYPT_PADDING padding,
              const uint8_t *in, uint32_t in_len, uint8_t *out, uint32_t *out_len);
RK_RES rk_rsa_priv_encrypt(const rk_rsa_priv_key_pack *priv, enum RK_RSA_CRYPT_PADDING padding,
              const uint8_t *in, uint32_t in_len, uint8_t *out, uint32_t *out_len);
RK_RES rk_rsa_pub_decrypt(const rk_rsa_pub_key_pack *pub, enum RK_RSA_CRYPT_PADDING padding,
             const uint8_t *in, uint32_t in_len, uint8_t *out, uint32_t *out_len);
RK_RES rk_rsa_sign(const rk_rsa_priv_key_pack *priv, enum RK_RSA_SIGN_PADDING padding,
          const uint8_t *in, uint32_t in_len, const uint8_t *hash,
          uint8_t *out, uint32_t *out_len);
RK_RES rk_rsa_verify(const rk_rsa_pub_key_pack *pub, enum RK_RSA_SIGN_PADDING padding,
            const uint8_t *in, uint32_t in_len, const uint8_t *hash,
            uint8_t *sign, uint32_t sign_len);
 
#endif