/home/dko/projects/mobilec/trunk/src/security/xyssl-0.9/include/xyssl/rsa.h File Reference
#include "bignum.h"
Go to the source code of this file.
Data Structures
Defines
Functions
Initialize an RSA context.
Generate an RSA keypair.
Check a public RSA key.
Check a private RSA key.
Do an RSA public key operation.
Do an RSA private key operation.
Add the message padding, then do an RSA operation.
Do an RSA operation, then remove the message padding.
Do a private RSA to sign a message digest.
Do a public RSA and check the message digest.
Free the components of an RSA key.
Checkup routine.
Detailed Description
Definition in file rsa.h.
Define Documentation
Value:
"\x30\x20\x30\x0C\x06\x08\x2A\x86\x48" \
"\x86\xF7\x0D\x02\x00\x05\x00\x04\x10"
Definition at line 45 of file rsa.h.
Value:
"\x30\x21\x30\x09\x06\x05\x2B\x0E\x03" \
"\x02\x1A\x05\x00\x04\x14"
Definition at line 49 of file rsa.h.
Definition at line 34 of file rsa.h.
Definition at line 21 of file rsa.h.
Definition at line 22 of file rsa.h.
Definition at line 23 of file rsa.h.
Definition at line 31 of file rsa.h.
Definition at line 20 of file rsa.h.
Definition at line 25 of file rsa.h.
Definition at line 33 of file rsa.h.
#define XYSSL_ERR_RSA_BAD_INPUT_DATA -0x0400
Definition at line 9 of file rsa.h.
#define XYSSL_ERR_RSA_INVALID_PADDING -0x0410
Definition at line 10 of file rsa.h.
#define XYSSL_ERR_RSA_KEY_CHECK_FAILED -0x0430
Definition at line 12 of file rsa.h.
#define XYSSL_ERR_RSA_KEY_GEN_FAILED -0x0420
Definition at line 11 of file rsa.h.
#define XYSSL_ERR_RSA_PRIVATE_FAILED -0x0450
Definition at line 14 of file rsa.h.
#define XYSSL_ERR_RSA_PUBLIC_FAILED -0x0440
Definition at line 13 of file rsa.h.
#define XYSSL_ERR_RSA_VERIFY_FAILED -0x0460
Definition at line 15 of file rsa.h.
Function Documentation
Check a private RSA key.
- Parameters:
-
ctx RSA context to be checked
- Returns:
- 0 if successful, or an XYSSL_ERR_RSA_XXX error code
Check a public RSA key.
- Parameters:
-
ctx RSA context to be checked
- Returns:
- 0 if successful, or an XYSSL_ERR_RSA_XXX error code
Generate an RSA keypair.
- Parameters:
-
ctx RSA context that will hold the key
nbits size of the public key in bits
exponent public exponent (e.g., 65537)
- Note:
- rsa_init() must be called beforehand to setup the RSA context (especially f_rng and p_rng).
- Returns:
- 0 if successful, or an XYSSL_ERR_RSA_XXX error code
Referenced by main().
Initialize an RSA context.
- Parameters:
-
ctx RSA context to be initialized
padding RSA_PKCS_V15 or RSA_PKCS_V21
hash_id RSA_PKCS_V21 hash identifier
f_rng RNG function
p_rng RNG parameter
- Note:
- The hash_id parameter is actually ignored when using RSA_PKCS_V15 padding.
Currently (xyssl-0.8), RSA_PKCS_V21 padding is not supported.
Referenced by main().
unsigned char *
input,
unsigned char *
output
)
Do an RSA operation, then remove the message padding.
- Parameters:
-
ctx RSA context
mode RSA_PUBLIC or RSA_PRIVATE
input buffer holding the encrypted data
output buffer that will hold the plaintext
olen will contain the plaintext length
- Returns:
- 0 if successful, or an XYSSL_ERR_RSA_XXX error code
- Note:
- The output buffer must be as large as the size of ctx->N (eg. 128 bytes if RSA-1024 is used).
Referenced by RSA_private_decrypt(), and RSA_public_decrypt().
unsigned char *
input,
unsigned char *
output
)
Add the message padding, then do an RSA operation.
- Parameters:
-
ctx RSA context
mode RSA_PUBLIC or RSA_PRIVATE
ilen contains the the plaintext length
input buffer holding the data to be encrypted
output buffer that will hold the ciphertext
- Returns:
- 0 if successful, or an XYSSL_ERR_RSA_XXX error code
- Note:
- The output buffer must be as large as the size of ctx->N (eg. 128 bytes if RSA-1024 is used).
Referenced by RSA_private_encrypt(), and RSA_public_encrypt().
unsigned char *
hash,
unsigned char *
sig
)
Do a private RSA to sign a message digest.
- Parameters:
-
ctx RSA context
mode RSA_PUBLIC or RSA_PRIVATE
hash_id RSA_RAW, RSA_MD{2,4,5} or RSA_SHA{1,256}
hashlen message digest length (for RSA_RAW only)
hash buffer holding the message digest
sig buffer that will hold the ciphertext
- Returns:
- 0 if the signing operation was successful, or an XYSSL_ERR_RSA_XXX error code
- Note:
- The "sig" buffer must be as large as the size of ctx->N (eg. 128 bytes if RSA-1024 is used).
Referenced by main().
unsigned char *
hash,
unsigned char *
sig
)
Do a public RSA and check the message digest.
- Parameters:
-
ctx points to an RSA public key
mode RSA_PUBLIC or RSA_PRIVATE
hash_id RSA_RAW, RSA_MD{2,4,5} or RSA_SHA{1,256}
hashlen message digest length (for RSA_RAW only)
hash buffer holding the message digest
sig buffer holding the ciphertext
- Returns:
- 0 if the verify operation was successful, or an XYSSL_ERR_RSA_XXX error code
- Note:
- The "sig" buffer must be as large as the size of ctx->N (eg. 128 bytes if RSA-1024 is used).
Referenced by main().
unsigned char *
input,
unsigned char *
output
)
Do an RSA private key operation.
- Parameters:
-
ctx RSA context
input input buffer
output output buffer
- Returns:
- 0 if successful, or an XYSSL_ERR_RSA_XXX error code
- Note:
- The input and output buffers must be large enough (eg. 128 bytes if RSA-1024 is used).
Referenced by main().
unsigned char *
input,
unsigned char *
output
)
Do an RSA public key operation.
- Parameters:
-
ctx RSA context
input input buffer
output output buffer
- Returns:
- 0 if successful, or an XYSSL_ERR_RSA_XXX error code
- Note:
- This function does NOT take care of message padding. Also, be sure to set input[0] = 0.
The input and output buffers must be large enough (eg. 128 bytes if RSA-1024 is used).
Referenced by main().
int rsa_self_test
(
int
verbose
)
Checkup routine.
- Returns:
- 0 if successful, or 1 if the test failed
Referenced by main().