CL_RSA Class Reference
[clanCore Crypto]

RSA class. More...

#include <rsa.h>

List of all members.

Static Public Member Functions

Attributes

static void create_keypair (CL_Random &random, CL_Secret &out_private_exponent, CL_DataBuffer &out_public_exponent, CL_DataBuffer &out_modulus, int key_size_in_bits=1024, int public_exponent_value=65537)
 Create a keypair.
static CL_DataBuffer encrypt (int block_type, CL_Random &random, const CL_DataBuffer &in_public_exponent, const CL_DataBuffer &in_modulus, const CL_Secret &in_data)
 Encrypt.
static CL_DataBuffer encrypt (int block_type, CL_Random &random, const void *in_public_exponent, unsigned int in_public_exponent_size, const void *in_modulus, unsigned int in_modulus_size, const void *in_data, unsigned int in_data_size)
 Encrypt.
static CL_Secret decrypt (const CL_Secret &in_private_exponent, const CL_DataBuffer &in_modulus, const CL_DataBuffer &in_data)
 Decrypt.
static CL_Secret decrypt (const CL_Secret &in_private_exponent, const void *in_modulus, unsigned int in_modulus_size, const void *in_data, unsigned int in_data_size)
 Decrypt.

Detailed Description

RSA class.

Important: This class has NOT been tested thoroughly by a cryptography expert.


Member Function Documentation

static void CL_RSA::create_keypair ( CL_Random random,
CL_Secret out_private_exponent,
CL_DataBuffer out_public_exponent,
CL_DataBuffer out_modulus,
int  key_size_in_bits = 1024,
int  public_exponent_value = 65537 
) [static]

Create a keypair.

Parameters:
random = Random number generator
out_private_exponent = Private exponent (to decrypt with)
out_public_exponent = Public exponent (to encrypt with)
out_modulus = Modulus
key_size_in_bits = key size in bits
public_exponent_value = public exponent value
static CL_Secret CL_RSA::decrypt ( const CL_Secret in_private_exponent,
const void *  in_modulus,
unsigned int  in_modulus_size,
const void *  in_data,
unsigned int  in_data_size 
) [static]

Decrypt.

Warning: An exception may be thrown when decrypting if in_data is not valid. Be careful handling this, to prevent "timing attacks"

Parameters:
in_private_exponent = Private exponent
in_modulus = Modulus
in_modulus_size = size in bytes of in_modulus
in_data = Data to encrypt
in_data_size = size in bytes of in_data (length equals in_modulus_size)
Returns:
Decrypted data
static CL_Secret CL_RSA::decrypt ( const CL_Secret in_private_exponent,
const CL_DataBuffer in_modulus,
const CL_DataBuffer in_data 
) [static]

Decrypt.

Warning: An exception may be thrown when decrypting if in_data is not valid. Be careful handling this, to prevent "timing attacks"

Parameters:
in_private_exponent = Private exponent
in_modulus = Modulus
in_data = Data to decrypt (length equals in_modulus.get_size())
Returns:
Decrypted data
static CL_DataBuffer CL_RSA::encrypt ( int  block_type,
CL_Random random,
const void *  in_public_exponent,
unsigned int  in_public_exponent_size,
const void *  in_modulus,
unsigned int  in_modulus_size,
const void *  in_data,
unsigned int  in_data_size 
) [static]

Encrypt.

Parameters:
block_type = 0 (private key), 1 (private key) or 2 (public key)
random = Random number generator
in_public_exponent = Public exponent
in_public_exponent_size = size in bytes of in_public_exponent
in_modulus = Modulus
in_modulus_size = size in bytes of in_modulus
in_data = Data to encrypt
in_data_size = size in bytes of in_data (maximum size is in_modulus_size - 11)
Returns:
Encrypted data
static CL_DataBuffer CL_RSA::encrypt ( int  block_type,
CL_Random random,
const CL_DataBuffer in_public_exponent,
const CL_DataBuffer in_modulus,
const CL_Secret in_data 
) [static]

Encrypt.

Parameters:
block_type = 0 (private key), 1 (private key) or 2 (public key)
random = Random number generator
in_public_exponent = Public exponent
in_modulus = Modulus
in_data = Data to encrypt (maximum length is in_modulus.get_size() - 11)
Returns:
Encrypted data

The documentation for this class was generated from the following file: