]> git.ipfire.org Git - thirdparty/openssl.git/blob - engines/vendor_defns/hw_ubsec.h
Run util/openssl-format-source -v -c .
[thirdparty/openssl.git] / engines / vendor_defns / hw_ubsec.h
1 /******************************************************************************
2 *
3 * Copyright 2000
4 * Broadcom Corporation
5 * 16215 Alton Parkway
6 * PO Box 57013
7 * Irvine CA 92619-7013
8 *
9 *****************************************************************************/
10 /*
11 * Broadcom Corporation uBSec SDK
12 */
13 /*
14 * Character device header file.
15 */
16 /*
17 * Revision History:
18 *
19 * October 2000 JTT Created.
20 */
21
22 #define MAX_PUBLIC_KEY_BITS (1024)
23 #define MAX_PUBLIC_KEY_BYTES (1024/8)
24 #define SHA_BIT_SIZE (160)
25 #define MAX_CRYPTO_KEY_LENGTH 24
26 #define MAX_MAC_KEY_LENGTH 64
27 #define UBSEC_CRYPTO_DEVICE_NAME ((unsigned char *)"/dev/ubscrypt")
28 #define UBSEC_KEY_DEVICE_NAME ((unsigned char *)"/dev/ubskey")
29
30 /* Math command types. */
31 #define UBSEC_MATH_MODADD 0x0001
32 #define UBSEC_MATH_MODSUB 0x0002
33 #define UBSEC_MATH_MODMUL 0x0004
34 #define UBSEC_MATH_MODEXP 0x0008
35 #define UBSEC_MATH_MODREM 0x0010
36 #define UBSEC_MATH_MODINV 0x0020
37
38 typedef long ubsec_MathCommand_t;
39 typedef long ubsec_RNGCommand_t;
40
41 typedef struct ubsec_crypto_context_s {
42 unsigned int flags;
43 unsigned char crypto[MAX_CRYPTO_KEY_LENGTH];
44 unsigned char auth[MAX_MAC_KEY_LENGTH];
45 } ubsec_crypto_context_t, *ubsec_crypto_context_p;
46
47 /*
48 * Predeclare the function pointer types that we dynamically load from the DSO.
49 */
50
51 typedef int t_UBSEC_ubsec_bytes_to_bits(unsigned char *n, int bytes);
52
53 typedef int t_UBSEC_ubsec_bits_to_bytes(int bits);
54
55 typedef int t_UBSEC_ubsec_open(unsigned char *device);
56
57 typedef int t_UBSEC_ubsec_close(int fd);
58
59 typedef int t_UBSEC_diffie_hellman_generate_ioctl(int fd,
60 unsigned char *x,
61 int *x_len,
62 unsigned char *y,
63 int *y_len,
64 unsigned char *g, int g_len,
65 unsigned char *m, int m_len,
66 unsigned char *userX,
67 int userX_len,
68 int random_bits);
69
70 typedef int t_UBSEC_diffie_hellman_agree_ioctl(int fd,
71 unsigned char *x, int x_len,
72 unsigned char *y, int y_len,
73 unsigned char *m, int m_len,
74 unsigned char *k, int *k_len);
75
76 typedef int t_UBSEC_rsa_mod_exp_ioctl(int fd,
77 unsigned char *x, int x_len,
78 unsigned char *m, int m_len,
79 unsigned char *e, int e_len,
80 unsigned char *y, int *y_len);
81
82 typedef int t_UBSEC_rsa_mod_exp_crt_ioctl(int fd,
83 unsigned char *x, int x_len,
84 unsigned char *qinv, int qinv_len,
85 unsigned char *edq, int edq_len,
86 unsigned char *q, int q_len,
87 unsigned char *edp, int edp_len,
88 unsigned char *p, int p_len,
89 unsigned char *y, int *y_len);
90
91 typedef int t_UBSEC_dsa_sign_ioctl(int fd,
92 int hash, unsigned char *data,
93 int data_len, unsigned char *rndom,
94 int random_len, unsigned char *p,
95 int p_len, unsigned char *q, int q_len,
96 unsigned char *g, int g_len,
97 unsigned char *key, int key_len,
98 unsigned char *r, int *r_len,
99 unsigned char *s, int *s_len);
100
101 typedef int t_UBSEC_dsa_verify_ioctl(int fd,
102 int hash, unsigned char *data,
103 int data_len, unsigned char *p,
104 int p_len, unsigned char *q, int q_len,
105 unsigned char *g, int g_len,
106 unsigned char *key, int key_len,
107 unsigned char *r, int r_len,
108 unsigned char *s, int s_len,
109 unsigned char *v, int *v_len);
110
111 typedef int t_UBSEC_math_accelerate_ioctl(int fd, ubsec_MathCommand_t command,
112 unsigned char *ModN, int *ModN_len,
113 unsigned char *ExpE, int *ExpE_len,
114 unsigned char *ParamA,
115 int *ParamA_len,
116 unsigned char *ParamB,
117 int *ParamB_len,
118 unsigned char *Result,
119 int *Result_len);
120
121 typedef int t_UBSEC_rng_ioctl(int fd, ubsec_RNGCommand_t command,
122 unsigned char *Result, int *Result_len);
123
124 typedef int t_UBSEC_max_key_len_ioctl(int fd, int *max_key_len);