Bouffalo SDK  1.0
Bouffalolab Software Development Kit
SEC_PKA
Collaboration diagram for SEC_PKA:

Macros

#define SEC_ENG_PKA_REG_SIZE_8   1
 
#define SEC_ENG_PKA_REG_SIZE_16   2
 
#define SEC_ENG_PKA_REG_SIZE_32   3
 
#define SEC_ENG_PKA_REG_SIZE_64   4
 
#define SEC_ENG_PKA_REG_SIZE_96   5
 
#define SEC_ENG_PKA_REG_SIZE_128   6
 
#define SEC_ENG_PKA_REG_SIZE_192   7
 
#define SEC_ENG_PKA_REG_SIZE_256   8
 
#define SEC_ENG_PKA_REG_SIZE_384   9
 
#define SEC_ENG_PKA_REG_SIZE_512   10
 
#define SEC_ENG_PKA_OP_PPSEL   0x00
 
#define SEC_ENG_PKA_OP_LMOD2N   0x11
 
#define SEC_ENG_PKA_OP_LDIV2N   0x12
 
#define SEC_ENG_PKA_OP_LMUL2N   0x13
 
#define SEC_ENG_PKA_OP_LDIV   0x14
 
#define SEC_ENG_PKA_OP_LSQR   0x15
 
#define SEC_ENG_PKA_OP_LMUL   0x16
 
#define SEC_ENG_PKA_OP_LSUB   0x17
 
#define SEC_ENG_PKA_OP_LADD   0x18
 
#define SEC_ENG_PKA_OP_LCMP   0x19
 
#define SEC_ENG_PKA_OP_MDIV2   0x21
 
#define SEC_ENG_PKA_OP_MINV   0x22
 
#define SEC_ENG_PKA_OP_MEXP   0x23
 
#define SEC_ENG_PKA_OP_MSQR   0x24
 
#define SEC_ENG_PKA_OP_MMUL   0x25
 
#define SEC_ENG_PKA_OP_MREM   0x26
 
#define SEC_ENG_PKA_OP_MSUB   0x27
 
#define SEC_ENG_PKA_OP_MADD   0x28
 
#define SEC_ENG_PKA_OP_RESIZE   0x31
 
#define SEC_ENG_PKA_OP_MOVDAT   0x32
 
#define SEC_ENG_PKA_OP_NLIR   0x33
 
#define SEC_ENG_PKA_OP_SLIR   0x34
 
#define SEC_ENG_PKA_OP_CLIR   0x35
 
#define SEC_ENG_PKA_OP_CFLIRI_BUFFER   0x36
 
#define SEC_ENG_PKA_OP_CTLIRI_PLD   0x37
 
#define SEC_ENG_PKA_OP_CFLIR_BUFFER   0x38
 
#define SEC_ENG_PKA_OP_CTLIR_PLD   0x39
 

Functions

void bflb_pka_init (struct bflb_device_s *dev)
 
void bflb_pka_deinit (struct bflb_device_s *dev)
 
void bflb_pka_lmod2n (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint16_t bit_shift, uint8_t lastop)
 
void bflb_pka_ldiv2n (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint16_t bit_shift, uint8_t lastop)
 
void bflb_pka_lmul2n (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint16_t bit_shift, uint8_t lastop)
 
void bflb_pka_ldiv (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s2_regindex, uint8_t s2_regsize, uint8_t lastop)
 
void bflb_pka_lsqr (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t lastop)
 
void bflb_pka_lmul (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s1_regindex, uint8_t s1_regsize, uint8_t lastop)
 
void bflb_pka_lsub (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s1_regindex, uint8_t s1_regsize, uint8_t lastop)
 
void bflb_pka_ladd (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s1_regindex, uint8_t s1_regsize, uint8_t lastop)
 
uint8_t bflb_pka_lcmp (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t s1_regindex, uint8_t s1_regsize)
 
void bflb_pka_minv (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s2_regindex, uint8_t s2_regsize, uint8_t lastop)
 
void bflb_pka_mexp (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s1_regindex, uint8_t s1_regsize, uint8_t s2_regindex, uint8_t s2_regsize, uint8_t lastop)
 
void bflb_pka_msqr (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s2_regindex, uint8_t s2_regsize, uint8_t lastop)
 
void bflb_pka_mmul (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s1_regindex, uint8_t s1_regsize, uint8_t s2_regindex, uint8_t s2_regsize, uint8_t lastop)
 
void bflb_pka_mrem (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s2_regindex, uint8_t s2_regsize, uint8_t lastop)
 
void bflb_pka_msub (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s1_regindex, uint8_t s1_regsize, uint8_t s2_regindex, uint8_t s2_regsize, uint8_t lastop)
 
void bflb_pka_madd (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t s1_regindex, uint8_t s1_regsize, uint8_t s2_regindex, uint8_t s2_regsize, uint8_t lastop)
 
void bflb_pka_regsize (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t lastop)
 
void bflb_pka_movdat (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t lastop)
 
void bflb_pka_nlir (struct bflb_device_s *dev, uint8_t s0_regindex, uint8_t s0_regsize, uint8_t d0_regindex, uint8_t d0_regsize, uint8_t lastop)
 
void bflb_pka_slir (struct bflb_device_s *dev, uint8_t regindex, uint8_t regsize, uint32_t data, uint8_t lastop)
 
void bflb_pka_clir (struct bflb_device_s *dev, uint8_t regindex, uint8_t regsize, uint16_t size, uint8_t lastop)
 
void bflb_pka_write (struct bflb_device_s *dev, uint8_t regindex, uint8_t regsize, const uint32_t *data, uint16_t size, uint8_t lastop)
 
void bflb_pka_read (struct bflb_device_s *dev, uint8_t regindex, uint8_t regsize, uint32_t *data, uint16_t size)
 
void bflb_pka_gf2mont (struct bflb_device_s *dev, uint8_t s_regindex, uint8_t s_regsize, uint8_t d_regindex, uint8_t d_regsize, uint8_t t_regindex, uint8_t t_regsize, uint8_t p_regindex, uint8_t p_regsize, uint32_t size)
 
void bflb_pka_mont2gf (struct bflb_device_s *dev, uint8_t s_regindex, uint8_t s_regsize, uint8_t d_regindex, uint8_t d_regsize, uint8_t invt_regindex, uint8_t invt_regsize, uint8_t t_regindex, uint8_t t_regsize, uint8_t p_regindex, uint8_t p_regsize)
 

Detailed Description

Macro Definition Documentation

◆ SEC_ENG_PKA_OP_CFLIR_BUFFER

#define SEC_ENG_PKA_OP_CFLIR_BUFFER   0x38

Definition at line 50 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_CFLIRI_BUFFER

#define SEC_ENG_PKA_OP_CFLIRI_BUFFER   0x36

Definition at line 48 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_CLIR

#define SEC_ENG_PKA_OP_CLIR   0x35

Definition at line 47 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_CTLIR_PLD

#define SEC_ENG_PKA_OP_CTLIR_PLD   0x39

Definition at line 51 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_CTLIRI_PLD

#define SEC_ENG_PKA_OP_CTLIRI_PLD   0x37

Definition at line 49 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_LADD

#define SEC_ENG_PKA_OP_LADD   0x18

Definition at line 33 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_LCMP

#define SEC_ENG_PKA_OP_LCMP   0x19

Definition at line 34 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_LDIV

#define SEC_ENG_PKA_OP_LDIV   0x14

Definition at line 29 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_LDIV2N

#define SEC_ENG_PKA_OP_LDIV2N   0x12

Definition at line 27 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_LMOD2N

#define SEC_ENG_PKA_OP_LMOD2N   0x11

Definition at line 26 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_LMUL

#define SEC_ENG_PKA_OP_LMUL   0x16

Definition at line 31 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_LMUL2N

#define SEC_ENG_PKA_OP_LMUL2N   0x13

Definition at line 28 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_LSQR

#define SEC_ENG_PKA_OP_LSQR   0x15

Definition at line 30 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_LSUB

#define SEC_ENG_PKA_OP_LSUB   0x17

Definition at line 32 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_MADD

#define SEC_ENG_PKA_OP_MADD   0x28

Definition at line 42 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_MDIV2

#define SEC_ENG_PKA_OP_MDIV2   0x21

Definition at line 35 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_MEXP

#define SEC_ENG_PKA_OP_MEXP   0x23

Definition at line 37 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_MINV

#define SEC_ENG_PKA_OP_MINV   0x22

Definition at line 36 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_MMUL

#define SEC_ENG_PKA_OP_MMUL   0x25

Definition at line 39 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_MOVDAT

#define SEC_ENG_PKA_OP_MOVDAT   0x32

Definition at line 44 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_MREM

#define SEC_ENG_PKA_OP_MREM   0x26

Definition at line 40 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_MSQR

#define SEC_ENG_PKA_OP_MSQR   0x24

Definition at line 38 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_MSUB

#define SEC_ENG_PKA_OP_MSUB   0x27

Definition at line 41 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_NLIR

#define SEC_ENG_PKA_OP_NLIR   0x33

Definition at line 45 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_PPSEL

#define SEC_ENG_PKA_OP_PPSEL   0x00

Definition at line 25 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_RESIZE

#define SEC_ENG_PKA_OP_RESIZE   0x31

Definition at line 43 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_OP_SLIR

#define SEC_ENG_PKA_OP_SLIR   0x34

Definition at line 46 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_REG_SIZE_128

#define SEC_ENG_PKA_REG_SIZE_128   6

Definition at line 19 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_REG_SIZE_16

#define SEC_ENG_PKA_REG_SIZE_16   2

Definition at line 15 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_REG_SIZE_192

#define SEC_ENG_PKA_REG_SIZE_192   7

Definition at line 20 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_REG_SIZE_256

#define SEC_ENG_PKA_REG_SIZE_256   8

Definition at line 21 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_REG_SIZE_32

#define SEC_ENG_PKA_REG_SIZE_32   3

Definition at line 16 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_REG_SIZE_384

#define SEC_ENG_PKA_REG_SIZE_384   9

Definition at line 22 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_REG_SIZE_512

#define SEC_ENG_PKA_REG_SIZE_512   10

Definition at line 23 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_REG_SIZE_64

#define SEC_ENG_PKA_REG_SIZE_64   4

Definition at line 17 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_REG_SIZE_8

#define SEC_ENG_PKA_REG_SIZE_8   1

Definition at line 14 of file bflb_sec_pka.h.

◆ SEC_ENG_PKA_REG_SIZE_96

#define SEC_ENG_PKA_REG_SIZE_96   5

Definition at line 18 of file bflb_sec_pka.h.

Function Documentation

◆ bflb_pka_clir()

void bflb_pka_clir ( struct bflb_device_s dev,
uint8_t  regindex,
uint8_t  regsize,
uint16_t  size,
uint8_t  lastop 
)

◆ bflb_pka_deinit()

void bflb_pka_deinit ( struct bflb_device_s dev)

◆ bflb_pka_gf2mont()

void bflb_pka_gf2mont ( struct bflb_device_s dev,
uint8_t  s_regindex,
uint8_t  s_regsize,
uint8_t  d_regindex,
uint8_t  d_regsize,
uint8_t  t_regindex,
uint8_t  t_regsize,
uint8_t  p_regindex,
uint8_t  p_regsize,
uint32_t  size 
)

◆ bflb_pka_init()

void bflb_pka_init ( struct bflb_device_s dev)

◆ bflb_pka_ladd()

void bflb_pka_ladd ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s1_regindex,
uint8_t  s1_regsize,
uint8_t  lastop 
)

◆ bflb_pka_lcmp()

uint8_t bflb_pka_lcmp ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  s1_regindex,
uint8_t  s1_regsize 
)

◆ bflb_pka_ldiv()

void bflb_pka_ldiv ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s2_regindex,
uint8_t  s2_regsize,
uint8_t  lastop 
)

◆ bflb_pka_ldiv2n()

void bflb_pka_ldiv2n ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint16_t  bit_shift,
uint8_t  lastop 
)

◆ bflb_pka_lmod2n()

void bflb_pka_lmod2n ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint16_t  bit_shift,
uint8_t  lastop 
)

◆ bflb_pka_lmul()

void bflb_pka_lmul ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s1_regindex,
uint8_t  s1_regsize,
uint8_t  lastop 
)

◆ bflb_pka_lmul2n()

void bflb_pka_lmul2n ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint16_t  bit_shift,
uint8_t  lastop 
)

◆ bflb_pka_lsqr()

void bflb_pka_lsqr ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  lastop 
)

◆ bflb_pka_lsub()

void bflb_pka_lsub ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s1_regindex,
uint8_t  s1_regsize,
uint8_t  lastop 
)

◆ bflb_pka_madd()

void bflb_pka_madd ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s1_regindex,
uint8_t  s1_regsize,
uint8_t  s2_regindex,
uint8_t  s2_regsize,
uint8_t  lastop 
)

◆ bflb_pka_mexp()

void bflb_pka_mexp ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s1_regindex,
uint8_t  s1_regsize,
uint8_t  s2_regindex,
uint8_t  s2_regsize,
uint8_t  lastop 
)

◆ bflb_pka_minv()

void bflb_pka_minv ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s2_regindex,
uint8_t  s2_regsize,
uint8_t  lastop 
)

◆ bflb_pka_mmul()

void bflb_pka_mmul ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s1_regindex,
uint8_t  s1_regsize,
uint8_t  s2_regindex,
uint8_t  s2_regsize,
uint8_t  lastop 
)

◆ bflb_pka_mont2gf()

void bflb_pka_mont2gf ( struct bflb_device_s dev,
uint8_t  s_regindex,
uint8_t  s_regsize,
uint8_t  d_regindex,
uint8_t  d_regsize,
uint8_t  invt_regindex,
uint8_t  invt_regsize,
uint8_t  t_regindex,
uint8_t  t_regsize,
uint8_t  p_regindex,
uint8_t  p_regsize 
)

◆ bflb_pka_movdat()

void bflb_pka_movdat ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  lastop 
)

◆ bflb_pka_mrem()

void bflb_pka_mrem ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s2_regindex,
uint8_t  s2_regsize,
uint8_t  lastop 
)

◆ bflb_pka_msqr()

void bflb_pka_msqr ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s2_regindex,
uint8_t  s2_regsize,
uint8_t  lastop 
)

◆ bflb_pka_msub()

void bflb_pka_msub ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  s1_regindex,
uint8_t  s1_regsize,
uint8_t  s2_regindex,
uint8_t  s2_regsize,
uint8_t  lastop 
)

◆ bflb_pka_nlir()

void bflb_pka_nlir ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  lastop 
)

◆ bflb_pka_read()

void bflb_pka_read ( struct bflb_device_s dev,
uint8_t  regindex,
uint8_t  regsize,
uint32_t *  data,
uint16_t  size 
)

◆ bflb_pka_regsize()

void bflb_pka_regsize ( struct bflb_device_s dev,
uint8_t  s0_regindex,
uint8_t  s0_regsize,
uint8_t  d0_regindex,
uint8_t  d0_regsize,
uint8_t  lastop 
)

◆ bflb_pka_slir()

void bflb_pka_slir ( struct bflb_device_s dev,
uint8_t  regindex,
uint8_t  regsize,
uint32_t  data,
uint8_t  lastop 
)

◆ bflb_pka_write()

void bflb_pka_write ( struct bflb_device_s dev,
uint8_t  regindex,
uint8_t  regsize,
const uint32_t *  data,
uint16_t  size,
uint8_t  lastop 
)