#include <XSECCryptoKeyRSA.hpp>
Inheritance diagram for XSECCryptoKeyRSA:
The library uses classes derived from this to process RSA keys.
Public Types | |
enum | PaddingType { PAD_NONE = 0, PAD_PKCS_1_5 = 1, PAD_OAEP_MGFP1 = 2 } |
Padding type. More... | |
Public Member Functions | |
Constructors and Destructors | |
XSECCryptoKeyRSA () | |
virtual | ~XSECCryptoKeyRSA () |
Key Interface methods | |
virtual XSECCryptoKey::KeyType | getKeyType () |
Return the type of this key. | |
virtual XSECCryptoKey * | clone ()=0 |
Replicate key. | |
Mandatory RSA interface methods | |
These classes are required by the library. | |
virtual void | setOAEPparams (unsigned char *params, unsigned int paramsLen)=0 |
Set the OAEPparams string. | |
virtual unsigned int | getOAEPparamsLen (void)=0 |
Get OAEPparams Length. | |
virtual const unsigned char * | getOAEPparams (void)=0 |
Get the OAEPparams. | |
virtual bool | verifySHA1PKCS1Base64Signature (const unsigned char *hashBuf, unsigned int hashLen, const char *base64Signature, unsigned int sigLen)=0 |
Verify a SHA1 PKCS1 encoded signature. | |
virtual unsigned int | signSHA1PKCS1Base64Signature (unsigned char *hashBuf, unsigned int hashLen, char *base64SignatureBuf, unsigned int base64SignatureBufLen)=0 |
Create a signature. | |
virtual unsigned int | privateDecrypt (const unsigned char *inBuf, unsigned char *plainBuf, unsigned int inLength, unsigned int maxOutLength, PaddingType padding, hashMethod hm)=0 |
Decrypt using private key. | |
virtual unsigned int | publicEncrypt (const unsigned char *inBuf, unsigned char *cipherBuf, unsigned int inLength, unsigned int maxOutLength, PaddingType padding, hashMethod hm)=0 |
Encrypt using a public key. | |
virtual unsigned int | getLength (void)=0 |
Obtain the length of an RSA key. | |
Optional Interface methods | |
These functions do not necessarily have to be implmented. They are used by XSECKeyInfoResolverDefault to try to create a key from KeyInfo elements without knowing anything else.
If an interface class does not implement these functions, a simple stub that does nothing should be used. | |
virtual void | loadPublicModulusBase64BigNums (const char *b64, unsigned int len)=0 |
Load the modulus. | |
virtual void | loadPublicExponentBase64BigNums (const char *b64, unsigned int len)=0 |
Load the exponent. |
|
Padding type. Type of padding to be used for RSA encrypt/decrypt operations |
|
|
|
|
|
Replicate key.
Implements XSECCryptoKey. Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Return the type of this key. For RSA keys, this allows people to determine whether this is a public key, private key or a key pair Reimplemented from XSECCryptoKey. Reimplemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Obtain the length of an RSA key.
Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Get the OAEPparams.
Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Get OAEPparams Length.
Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Load the exponent. Load the exponent from a Base64 encoded string param b64 A buffer containing the encoded string param len The length of the data in the buffer Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Load the modulus. Load the modulus from a Base64 encoded string param b64 A buffer containing the encoded string param len The length of the data in the buffer Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Decrypt using private key. The library will call this function to decrypt a piece of cipher text using the private component of this key.
Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Encrypt using a public key. The library will call this function to encrypt a plain text buffer using the public component of this key.
Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Set the OAEPparams string. By default, the library expects crypto implementations to perform OAEP padding with no params. This call allows the library (or user) to set a params value prior to an encrypt/decrypt operation.
Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Create a signature. The library will call this function to create a signature from a pre-calculated digest. The output signature is required to be Base64 encoded such that it can be placed directly into the XML document This call needs to do a PKCS1 encode for a SHA-1 signature.
Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |
|
Verify a SHA1 PKCS1 encoded signature. The library will call this function to validate an RSA signature The standard by default uses SHA1 in a PKCS1 encoding.
Implemented in OpenSSLCryptoKeyRSA, and WinCAPICryptoKeyRSA. |