libcryptosec
Public Types | Public Member Functions | Protected Attributes | List of all members
AsymmetricKey Class Referenceabstract

#include <AsymmetricKey.h>

Inheritance diagram for AsymmetricKey:
PrivateKey PublicKey DSAPrivateKey ECDSAPrivateKey RSAPrivateKey DSAPublicKey ECDSAPublicKey RSAPublicKey

Public Types

enum  Algorithm { RSA, DSA, ECDSA }
 
enum  Curve {
  X962_PRIME192V1 = 409, X962_PRIME192V2 = 410, X962_PRIME192V3 = 411, X962_PRIME239V1 = 412,
  X962_PRIME239V2 = 413, X962_PRIME239V3 = 414, X962_PRIME256V1 = 415, X962_C2PNB163V1 = 684,
  X962_C2PNB163V2 = 685, X962_C2PNB163V3 = 686, X962_C2PNB176V1 = 687, X962_C2TNB191V1 = 688,
  X962_C2TNB191V2 = 689, X962_C2TNB191V3 = 690, X962_C2PNB208W1 = 693, X962_C2TNB239V1 = 694,
  X962_C2TNB239V2 = 695, X962_C2TNB239V3 = 696, X962_C2PNB272W1 = 699, X962_C2PNB304W1 = 700,
  X962_C2TNB359V1 = 701, X962_C2PNB368W1 = 702, X962_C2TNB431R1 = 703, SECG_SECP160K1 = 708,
  SECG_SECP160R1 = 709, SECG_SECP160R2 = 710, SECG_SECP192K1 = 711, SECG_SECP224K1 = 712,
  SECG_SECP256K1 = 714, SECG_SECT163R1 = 722, SECG_SECT193R1 = 724, SECG_SECT193R2 = 725,
  SECG_SECT239K1 = 728, NISTSECG_SECP224R1 = 713, NISTSECG_SECP384R1 = 715, NISTSECG_SECP521R1 = 716,
  NISTSECG_SECT163K1 = 721, NISTSECG_SECT163R2 = 723, NISTSECG_SECT233K1 = 726, NISTSECG_SECT233R1 = 727,
  NISTSECG_SECT283K1 = 729, NISTSECG_SECT283R1 = 730, NISTSECG_SECT409K1 = 731, NISTSECG_SECT409R1 = 732,
  NISTSECG_SECT571K1 = 733, NISTSECG_SECT571R1 = 734, BRAINPOOL_P160R1 = 921, BRAINPOOL_P160T1 = 922,
  BRAINPOOL_P192R1 = 923, BRAINPOOL_P192T1 = 924, BRAINPOOL_P224R1 = 925, BRAINPOOL_P224T1 = 926,
  BRAINPOOL_P256R1 = 927, BRAINPOOL_P256T1 = 928, BRAINPOOL_P320R1 = 929, BRAINPOOL_P320T1 = 930,
  BRAINPOOL_P384R1 = 931, BRAINPOOL_P384T1 = 932, BRAINPOOL_P512R1 = 933, BRAINPOOL_P512T1 = 934
}
 

Public Member Functions

 AsymmetricKey (EVP_PKEY *key) throw (AsymmetricKeyException)
 
 AsymmetricKey (ByteArray &encoded)
 
 AsymmetricKey (std::string &encoded)
 
virtual ~AsymmetricKey ()
 
virtual ByteArray getDerEncoded ()=0
 
virtual std::string getPemEncoded ()=0
 
AsymmetricKey::Algorithm getAlgorithm () throw (AsymmetricKeyException)
 
int getSize () throw (AsymmetricKeyException)
 
int getSizeBits () throw (AsymmetricKeyException)
 
EVP_PKEY * getEvpPkey ()
 

Protected Attributes

EVP_PKEY * key
 

Detailed Description

Classe que representa uma chave assimétrica.

Esta classe é abstrata e implementa apenas os procedimentos comuns a todos os tipos de chaves assimétricas.

See also
PrivateKey
PublicKey
RSAPrivateKey
RSAPublicKey
DSAPrivateKey
DSAPublicKey
KeyPair

Member Enumeration Documentation

◆ Algorithm

Algoritmos assimétricos suportados.

Enumerator
RSA 

A chave é do tipo RSA

DSA 

A chave é do tipo DSA

ECDSA 

A chave é do tipo ECDSA

◆ Curve

Curvas Elipticas suportadas (= NID)

Enumerator
X962_PRIME192V1 
X962_PRIME192V2 
X962_PRIME192V3 
X962_PRIME239V1 
X962_PRIME239V2 
X962_PRIME239V3 
X962_PRIME256V1 
X962_C2PNB163V1 
X962_C2PNB163V2 
X962_C2PNB163V3 
X962_C2PNB176V1 
X962_C2TNB191V1 
X962_C2TNB191V2 
X962_C2TNB191V3 
X962_C2PNB208W1 
X962_C2TNB239V1 
X962_C2TNB239V2 
X962_C2TNB239V3 
X962_C2PNB272W1 
X962_C2PNB304W1 
X962_C2TNB359V1 
X962_C2PNB368W1 
X962_C2TNB431R1 
SECG_SECP160K1 
SECG_SECP160R1 
SECG_SECP160R2 
SECG_SECP192K1 
SECG_SECP224K1 
SECG_SECP256K1 
SECG_SECT163R1 
SECG_SECT193R1 
SECG_SECT193R2 
SECG_SECT239K1 
NISTSECG_SECP224R1 
NISTSECG_SECP384R1 
NISTSECG_SECP521R1 
NISTSECG_SECT163K1 
NISTSECG_SECT163R2 
NISTSECG_SECT233K1 
NISTSECG_SECT233R1 
NISTSECG_SECT283K1 
NISTSECG_SECT283R1 
NISTSECG_SECT409K1 
NISTSECG_SECT409R1 
NISTSECG_SECT571K1 
NISTSECG_SECT571R1 
BRAINPOOL_P160R1 
BRAINPOOL_P160T1 
BRAINPOOL_P192R1 
BRAINPOOL_P192T1 
BRAINPOOL_P224R1 
BRAINPOOL_P224T1 
BRAINPOOL_P256R1 
BRAINPOOL_P256T1 
BRAINPOOL_P320R1 
BRAINPOOL_P320T1 
BRAINPOOL_P384R1 
BRAINPOOL_P384T1 
BRAINPOOL_P512R1 
BRAINPOOL_P512T1 

Constructor & Destructor Documentation

◆ AsymmetricKey() [1/3]

AsymmetricKey::AsymmetricKey ( EVP_PKEY *  key)
throw (AsymmetricKeyException
)

Construtor padrão recebendo um ponteiro para a estrutura OpenSSL EVP_PKEY. Esse construtor deve ser usando apenas internamente, para construir uma chave assimétrica nova deve ser utilizada a classe KeyPair.

Parameters
keyponteiro para a estrutura OpenSSL EVP_PKEY
Exceptions
AsymmetricKeyExceptioncaso a estrutura EVP_PKEY não seja uma estrutura OpenSSL válida ou ocorra algum problema na sua carga.

◆ AsymmetricKey() [2/3]

AsymmetricKey::AsymmetricKey ( ByteArray encoded)

Carrega uma chave assimétrica a partir da sua equivalente codificada em DER. Esse método é reimplementado pelas subclasses.

Parameters
encodeda chave assimétrica no formato DER.

◆ AsymmetricKey() [3/3]

AsymmetricKey::AsymmetricKey ( std::string &  encoded)

Carrega uma chave assimétrica a partir da sua equivalente codificada em PEM. Esse método é reimplementado pelas subclasses.

Parameters
encodeda chave assimétrica no formato PEM.

◆ ~AsymmetricKey()

AsymmetricKey::~AsymmetricKey ( )
virtual

Destrutor padrão. Limpa a estrutura interna EVP_PKEY

Member Function Documentation

◆ getAlgorithm()

AsymmetricKey::Algorithm AsymmetricKey::getAlgorithm ( )
throw (AsymmetricKeyException
)

Retorna o algoritmo assimétrico que deve ser usado com a chave atual.

Returns
tipo do algoritmo simetrico para essa chave.
Exceptions
AsymmetricKeyExceptioncaso o tipo de chave não tenha sido reconhecido.
See also
AsymmetricKey::Algorithm

◆ getDerEncoded()

virtual ByteArray AsymmetricKey::getDerEncoded ( )
pure virtual

Retorna uma representação da chave codificada em DER. Esse método é abstrato e implementado pelas subclasses.

Returns
chave assimétrica no formato DER.

Implemented in PrivateKey, and PublicKey.

◆ getEvpPkey()

EVP_PKEY * AsymmetricKey::getEvpPkey ( )

Uso interno. Retorna a estrutura OpenSSL interna.

Returns
um ponteiro para a estrutura OpenSSL interna à classe AsymmetricKey.

◆ getPemEncoded()

virtual std::string AsymmetricKey::getPemEncoded ( )
pure virtual

Retorna uma representação da chave codificada em PEM. Esse método é abstrato e implementado pelas subclasses.

Returns
chave assimétrica no formato PEM.

Implemented in PrivateKey, and PublicKey.

◆ getSize()

int AsymmetricKey::getSize ( )
throw (AsymmetricKeyException
)

Retorna o tamanho da chave em bytes.

Returns
tamanho da chave em bytes.
Exceptions
AsymmetricKeyExceptionse o tipo de chave não for suportado ou caso um erro tenha ocorrido ao tentar obter o tamanho da mesma.

◆ getSizeBits()

int AsymmetricKey::getSizeBits ( )
throw (AsymmetricKeyException
)

Retorna o tamanho da chave em bits.

Returns
tamanho da chave em bits.
Exceptions
AsymmetricKeyExceptionse o tipo de chave não for suportado ou caso um erro tenha ocorrido ao tentar obter o tamanho da mesma.

Member Data Documentation

◆ key

EVP_PKEY* AsymmetricKey::key
protected

Ponteiro para a estrutura interna OpenSSL EVP_PKEY.


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