0f113f3ee4
Reviewed-by: Tim Hudson <tjh@openssl.org>
44 lines
1.6 KiB
C
44 lines
1.6 KiB
C
/*
|
|
* 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);
|