WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
srp.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2023. All rights reserved.
3 * Description: srp lib head.
4 * This file should be changed only infrequently and with great care.
5 */
6
7#ifndef __SRP_H__
8#define __SRP_H__
9#include "mbedtls/bignum.h"
10#include "errcode.h"
11#include "dfx_adapt_layer.h"
12
13#define SRP_SUCC 1
14#define SRP_FAIL 0
15#define SHA256_DIGEST_LENGTH 32
16#define SRP_RANDOM_SALT_LEN 20
17#define SRP_HASH_LEN 32
18#define srp_err_printf(fmt...) dfx_log_err(fmt)
19
20typedef mbedtls_mpi bignum;
26typedef struct {
29} srp_gn;
30
31static inline uint32_t bn_num_bytes(const mbedtls_mpi *x)
32{
33 return mbedtls_mpi_size(x);
34}
35static inline int32_t bn_ucmp(const mbedtls_mpi *x, const mbedtls_mpi *y)
36{
37 return mbedtls_mpi_cmp_abs(x, y);
38}
39static inline int32_t bn_cmp(const mbedtls_mpi *x, const mbedtls_mpi *y)
40{
41 return mbedtls_mpi_cmp_mpi(x, y);
42}
43
44uint32_t uapi_hash_start(uint32_t *handle);
45uint32_t uapi_hash_update(uint32_t handle, const uint8_t *input_data, uint32_t input_data_len);
46uint32_t uapi_hash_final(uint32_t handle, uint8_t *output_hash, uint32_t output_hash_len);
47uint32_t uapi_hash_sha256(uint8_t *input_data, uint32_t input_data_len, uint8_t *output_hash);
48
50void bn_free(bignum *a);
51bignum *bn_bin2bn(const uint8_t *s, uint32_t len, bignum *ret);
52int bn_bn2bin(const bignum *a, unsigned char *to);
53
54uint32_t srp_get_random_data(uint8_t *random_data, uint16_t length);
60int srp_create_verifier_bn(const char *user, const char *pass,
61 bignum **salt, bignum **verifier, srp_gn *gn);
62
63#endif
osal_u8 type
Definition oal_net.h:0
int srp_create_verifier_bn(const char *user, const char *pass, bignum **salt, bignum **verifier, srp_gn *gn)
int srp_verify_b_mod_n(bignum *b, bignum *n)
int bn_bn2bin(const bignum *a, unsigned char *to)
bignum * srp_calc_u(bignum *a, bignum *b, bignum *n)
bignum * srp_calc_b(bignum *b, bignum *n, bignum *g, bignum *v)
uint32_t uapi_hash_sha256(uint8_t *input_data, uint32_t input_data_len, uint8_t *output_hash)
bignum * bn_bin2bn(const uint8_t *s, uint32_t len, bignum *ret)
srp_gntype
Definition srp.h:21
@ SRP_GN_3072
Definition srp.h:23
@ SRP_GN_1024
Definition srp.h:22
@ SRP_GN_MAX
Definition srp.h:24
uint32_t uapi_hash_update(uint32_t handle, const uint8_t *input_data, uint32_t input_data_len)
bignum * srp_calc_server_key(bignum *a, bignum *v, bignum *u, bignum *b, bignum *n)
bignum * bn_new(void)
void bn_free(bignum *a)
uint32_t srp_get_random_data(uint8_t *random_data, uint16_t length)
uint32_t uapi_hash_final(uint32_t handle, uint8_t *output_hash, uint32_t output_hash_len)
srp_gn * srp_get_default_gn(srp_gntype type)
mbedtls_mpi bignum
Definition srp.h:20
uint32_t uapi_hash_start(uint32_t *handle)
Definition srp.h:26
bignum * g
Definition srp.h:27
bignum * n
Definition srp.h:28