You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.6 KiB
44 lines
1.6 KiB
/* |
|
* This header declares the necessary definitions for using the |
|
* exponentiation acceleration capabilities of Atalla cards. The only |
|
* cryptographic operation is performed by "ASI_RSAPrivateKeyOpFn" and this |
|
* takes a structure that defines an "RSA private key". However, it is really |
|
* only performing a regular mod_exp using the supplied modulus and exponent |
|
* - no CRT form is being used. Hence, it is a generic mod_exp function in |
|
* disguise, and we use it as such. Thanks to the people at Atalla for |
|
* letting me know these definitions are fine and that they can be reproduced |
|
* here. Geoff. |
|
*/ |
|
|
|
typedef struct ItemStr { |
|
unsigned char *data; |
|
int len; |
|
} Item; |
|
|
|
typedef struct RSAPrivateKeyStr { |
|
void *reserved; |
|
Item version; |
|
Item modulus; |
|
Item publicExponent; |
|
Item privateExponent; |
|
Item prime[2]; |
|
Item exponent[2]; |
|
Item coefficient; |
|
} RSAPrivateKey; |
|
|
|
/* |
|
* Predeclare the function pointer types that we dynamically load from the |
|
* DSO. These use the same names and form that Ben's original support code |
|
* had (in crypto/bn/bn_exp.c) unless of course I've inadvertently changed |
|
* the style somewhere along the way! |
|
*/ |
|
|
|
typedef int tfnASI_GetPerformanceStatistics(int reset_flag, |
|
unsigned int *ret_buf); |
|
|
|
typedef int tfnASI_GetHardwareConfig(long card_num, unsigned int *ret_buf); |
|
|
|
typedef int tfnASI_RSAPrivateKeyOpFn(RSAPrivateKey * rsaKey, |
|
unsigned char *output, |
|
unsigned char *input, |
|
unsigned int modulus_len);
|
|
|