Classes |
struct | rsa_context |
| RSA context structure. More...
|
Defines |
#define | POLARSSL_ERR_RSA_BAD_INPUT_DATA -0x0400 |
#define | POLARSSL_ERR_RSA_INVALID_PADDING -0x0410 |
#define | POLARSSL_ERR_RSA_KEY_GEN_FAILED -0x0420 |
#define | POLARSSL_ERR_RSA_KEY_CHECK_FAILED -0x0430 |
#define | POLARSSL_ERR_RSA_PUBLIC_FAILED -0x0440 |
#define | POLARSSL_ERR_RSA_PRIVATE_FAILED -0x0450 |
#define | POLARSSL_ERR_RSA_VERIFY_FAILED -0x0460 |
#define | POLARSSL_ERR_RSA_OUTPUT_TOO_LARGE -0x0470 |
#define | POLARSSL_ERR_RSA_RNG_FAILED -0x0480 |
#define | SIG_RSA_RAW 0 |
#define | SIG_RSA_MD2 2 |
#define | SIG_RSA_MD4 3 |
#define | SIG_RSA_MD5 4 |
#define | SIG_RSA_SHA1 5 |
#define | SIG_RSA_SHA224 14 |
#define | SIG_RSA_SHA256 11 |
#define | SIG_RSA_SHA384 12 |
#define | SIG_RSA_SHA512 13 |
#define | RSA_PUBLIC 0 |
#define | RSA_PRIVATE 1 |
#define | RSA_PKCS_V15 0 |
#define | RSA_PKCS_V21 1 |
#define | RSA_SIGN 1 |
#define | RSA_CRYPT 2 |
#define | ASN1_STR_CONSTRUCTED_SEQUENCE "\x30" |
#define | ASN1_STR_NULL "\x05" |
#define | ASN1_STR_OID "\x06" |
#define | ASN1_STR_OCTET_STRING "\x04" |
#define | OID_DIGEST_ALG_MDX "\x2A\x86\x48\x86\xF7\x0D\x02\x00" |
#define | OID_HASH_ALG_SHA1 "\x2b\x0e\x03\x02\x1a" |
#define | OID_HASH_ALG_SHA2X "\x60\x86\x48\x01\x65\x03\x04\x02\x00" |
#define | OID_ISO_MEMBER_BODIES "\x2a" |
#define | OID_ISO_IDENTIFIED_ORG "\x2b" |
#define | OID_COUNTRY_US "\x86\x48" |
#define | OID_RSA_DATA_SECURITY "\x86\xf7\x0d" |
#define | OID_OIW_SECSIG_SHA1 "\x0e\x03\x02\x1a" |
#define | ASN1_HASH_MDX |
#define | ASN1_HASH_SHA1 |
#define | ASN1_HASH_SHA2X |
Functions |
void | rsa_init (rsa_context *ctx, int padding, int hash_id) |
| Initialize an RSA context.
|
int | rsa_gen_key (rsa_context *ctx, int(*f_rng)(void *), void *p_rng, int nbits, int exponent) |
| Generate an RSA keypair.
|
int | rsa_check_pubkey (const rsa_context *ctx) |
| Check a public RSA key.
|
int | rsa_check_privkey (const rsa_context *ctx) |
| Check a private RSA key.
|
int | rsa_public (rsa_context *ctx, const unsigned char *input, unsigned char *output) |
| Do an RSA public key operation.
|
int | rsa_private (rsa_context *ctx, const unsigned char *input, unsigned char *output) |
| Do an RSA private key operation.
|
int | rsa_pkcs1_encrypt (rsa_context *ctx, int(*f_rng)(void *), void *p_rng, int mode, int ilen, const unsigned char *input, unsigned char *output) |
| Add the message padding, then do an RSA operation.
|
int | rsa_pkcs1_decrypt (rsa_context *ctx, int mode, int *olen, const unsigned char *input, unsigned char *output, int output_max_len) |
| Do an RSA operation, then remove the message padding.
|
int | rsa_pkcs1_sign (rsa_context *ctx, int mode, int hash_id, int hashlen, const unsigned char *hash, unsigned char *sig) |
| Do a private RSA to sign a message digest.
|
int | rsa_pkcs1_verify (rsa_context *ctx, int mode, int hash_id, int hashlen, const unsigned char *hash, unsigned char *sig) |
| Do a public RSA and check the message digest.
|
void | rsa_free (rsa_context *ctx) |
| Free the components of an RSA key.
|
int | rsa_self_test (int verbose) |
| Checkup routine.
|
Copyright (C) 2006-2010, Brainspark B.V.
This file is part of PolarSSL (http://www.polarssl.org) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.