rsa.c File Reference

RSA public-key cryptography standard. More...

#include "core/crypto.h"
#include "mac/hmac.h"
#include "pkc/rsa.h"
#include "mpi/mpi.h"
#include "encoding/asn1.h"
#include "encoding/oid.h"
#include "debug.h"

Go to the source code of this file.

Macros

#define TRACE_LEVEL   CRYPTO_TRACE_LEVEL
 

Functions

void rsaInitPublicKey (RsaPublicKey *key)
 Initialize an RSA public key. More...
 
void rsaFreePublicKey (RsaPublicKey *key)
 Release an RSA public key. More...
 
void rsaInitPrivateKey (RsaPrivateKey *key)
 Initialize an RSA private key. More...
 
void rsaFreePrivateKey (RsaPrivateKey *key)
 Release an RSA private key. More...
 
error_t rsaesPkcs1v15Encrypt (const PrngAlgo *prngAlgo, void *prngContext, const RsaPublicKey *key, const uint8_t *message, size_t messageLen, uint8_t *ciphertext, size_t *ciphertextLen)
 RSAES-PKCS1-v1_5 encryption operation. More...
 
error_t rsaesPkcs1v15Decrypt (const RsaPrivateKey *key, const uint8_t *ciphertext, size_t ciphertextLen, uint8_t *message, size_t messageSize, size_t *messageLen)
 RSAES-PKCS1-v1_5 decryption operation. More...
 
error_t rsaesOaepEncrypt (const PrngAlgo *prngAlgo, void *prngContext, const RsaPublicKey *key, const HashAlgo *hash, const char_t *label, const uint8_t *message, size_t messageLen, uint8_t *ciphertext, size_t *ciphertextLen)
 RSAES-OAEP encryption operation. More...
 
error_t rsaesOaepDecrypt (const RsaPrivateKey *key, const HashAlgo *hash, const char_t *label, const uint8_t *ciphertext, size_t ciphertextLen, uint8_t *message, size_t messageSize, size_t *messageLen)
 RSAES-OAEP decryption operation. More...
 
error_t rsassaPkcs1v15Sign (const RsaPrivateKey *key, const HashAlgo *hash, const uint8_t *digest, uint8_t *signature, size_t *signatureLen)
 RSASSA-PKCS1-v1_5 signature generation operation. More...
 
error_t rsassaPkcs1v15Verify (const RsaPublicKey *key, const HashAlgo *hash, const uint8_t *digest, const uint8_t *signature, size_t signatureLen)
 RSASSA-PKCS1-v1_5 signature verification operation. More...
 
error_t rsassaPssSign (const PrngAlgo *prngAlgo, void *prngContext, const RsaPrivateKey *key, const HashAlgo *hash, size_t saltLen, const uint8_t *digest, uint8_t *signature, size_t *signatureLen)
 RSASSA-PSS signature generation operation. More...
 
error_t rsassaPssVerify (const RsaPublicKey *key, const HashAlgo *hash, size_t saltLen, const uint8_t *digest, const uint8_t *signature, size_t signatureLen)
 RSASSA-PSS signature verification operation. More...
 
__weak_func error_t rsaep (const RsaPublicKey *key, const Mpi *m, Mpi *c)
 RSA encryption primitive. More...
 
__weak_func error_t rsadp (const RsaPrivateKey *key, const Mpi *c, Mpi *m)
 RSA decryption primitive. More...
 
error_t rsasp1 (const RsaPrivateKey *key, const Mpi *m, Mpi *s)
 RSA signature primitive. More...
 
error_t rsavp1 (const RsaPublicKey *key, const Mpi *s, Mpi *m)
 RSA verification primitive. More...
 
error_t emePkcs1v15Encode (const PrngAlgo *prngAlgo, void *prngContext, const uint8_t *message, size_t messageLen, uint8_t *em, size_t k)
 EME-PKCS1-v1_5 encoding operation. More...
 
uint32_t emePkcs1v15Decode (uint8_t *em, size_t k, size_t *messageLen)
 EME-PKCS1-v1_5 decoding operation. More...
 
error_t emeOaepEncode (const PrngAlgo *prngAlgo, void *prngContext, const HashAlgo *hash, const char_t *label, const uint8_t *message, size_t messageLen, uint8_t *em, size_t k)
 EME-OAEP encoding operation. More...
 
uint32_t emeOaepDecode (const HashAlgo *hash, const char_t *label, uint8_t *em, size_t k, size_t *messageLen)
 EME-OAEP decoding operation. More...
 
error_t emsaPkcs1v15Encode (const HashAlgo *hash, const uint8_t *digest, uint8_t *em, size_t emLen)
 EMSA-PKCS1-v1_5 encoding operation. More...
 
error_t emsaPkcs1v15Verify (const HashAlgo *hash, const uint8_t *digest, const uint8_t *em, size_t emLen)
 EMSA-PKCS1-v1_5 verification operation. More...
 
error_t emsaPssEncode (const PrngAlgo *prngAlgo, void *prngContext, const HashAlgo *hash, size_t saltLen, const uint8_t *digest, uint8_t *em, uint_t emBits)
 EMSA-PSS encoding operation. More...
 
error_t emsaPssVerify (const HashAlgo *hash, size_t saltLen, const uint8_t *digest, uint8_t *em, uint_t emBits)
 EMSA-PSS verification operation. More...
 
void mgf1 (const HashAlgo *hash, HashContext *hashContext, const uint8_t *seed, size_t seedLen, uint8_t *data, size_t dataLen)
 MGF1 mask generation function. More...
 
error_t rsaGenerateKeyPair (const PrngAlgo *prngAlgo, void *prngContext, size_t k, uint_t e, RsaPrivateKey *privateKey, RsaPublicKey *publicKey)
 RSA key pair generation. More...
 
__weak_func error_t rsaGeneratePrivateKey (const PrngAlgo *prngAlgo, void *prngContext, size_t k, uint_t e, RsaPrivateKey *privateKey)
 RSA private key generation. More...
 
error_t rsaGeneratePublicKey (const RsaPrivateKey *privateKey, RsaPublicKey *publicKey)
 Derive the public key from an RSA private key. More...
 

Variables

const uint8_t PKCS1_OID [8] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01}
 
const uint8_t RSA_ENCRYPTION_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01}
 
const uint8_t MD2_WITH_RSA_ENCRYPTION_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x02}
 
const uint8_t MD5_WITH_RSA_ENCRYPTION_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x04}
 
const uint8_t SHA1_WITH_RSA_ENCRYPTION_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05}
 
const uint8_t SHA224_WITH_RSA_ENCRYPTION_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0E}
 
const uint8_t SHA256_WITH_RSA_ENCRYPTION_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B}
 
const uint8_t SHA384_WITH_RSA_ENCRYPTION_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0C}
 
const uint8_t SHA512_WITH_RSA_ENCRYPTION_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0D}
 
const uint8_t SHA512_224_WITH_RSA_ENCRYPTION_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0F}
 
const uint8_t SHA512_256_WITH_RSA_ENCRYPTION_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x10}
 
const uint8_t RSASSA_PKCS1_V1_5_WITH_SHA3_224_OID [9] = {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x0D}
 
const uint8_t RSASSA_PKCS1_V1_5_WITH_SHA3_256_OID [9] = {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x0E}
 
const uint8_t RSASSA_PKCS1_V1_5_WITH_SHA3_384_OID [9] = {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x0F}
 
const uint8_t RSASSA_PKCS1_V1_5_WITH_SHA3_512_OID [9] = {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x10}
 
const uint8_t RSASSA_PSS_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0A}
 
const uint8_t MGF1_OID [9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x08}
 

Detailed Description

RSA public-key cryptography standard.

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneCRYPTO Open.

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.

Description

RSA is an algorithm for public-key cryptography which is suitable for signing as well as encryption. Refer to the following RFCs for complete details:

  • RFC 2313: PKCS #1: RSA Encryption Version 1.5
  • RFC 3447: PKCS #1: RSA Cryptography Specifications Version 2.1
  • RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2
Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.4.0

Definition in file rsa.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   CRYPTO_TRACE_LEVEL

Definition at line 40 of file rsa.c.

Function Documentation

◆ emeOaepDecode()

uint32_t emeOaepDecode ( const HashAlgo hash,
const char_t label,
uint8_t *  em,
size_t  k,
size_t *  messageLen 
)

EME-OAEP decoding operation.

Parameters
[in]hashUnderlying hash function
[in]labelOptional label to be associated with the message
[in]emEncoded message
[in]kLength of the encoded message
[out]messageLenLength of the decrypted message
Returns
The function returns 0 on success, 1 on failure

Definition at line 1555 of file rsa.c.

◆ emeOaepEncode()

error_t emeOaepEncode ( const PrngAlgo prngAlgo,
void *  prngContext,
const HashAlgo hash,
const char_t label,
const uint8_t *  message,
size_t  messageLen,
uint8_t *  em,
size_t  k 
)

EME-OAEP encoding operation.

Parameters
[in]prngAlgoPRNG algorithm
[in]prngContextPointer to the PRNG context
[in]hashUnderlying hash function
[in]labelOptional label to be associated with the message
[in]messageMessage to be encrypted
[in]messageLenLength of the message to be encrypted
[out]emEncoded message
[in]kLength of the encoded message
Returns
Error code

Definition at line 1465 of file rsa.c.

◆ emePkcs1v15Decode()

uint32_t emePkcs1v15Decode ( uint8_t *  em,
size_t  k,
size_t *  messageLen 
)

EME-PKCS1-v1_5 decoding operation.

Parameters
[in]emEncoded message
[in]kLength of the encoded message
[out]messageLenLength of the decrypted message
Returns
The function returns 0 on success, 1 on failure

Definition at line 1411 of file rsa.c.

◆ emePkcs1v15Encode()

error_t emePkcs1v15Encode ( const PrngAlgo prngAlgo,
void *  prngContext,
const uint8_t *  message,
size_t  messageLen,
uint8_t *  em,
size_t  k 
)

EME-PKCS1-v1_5 encoding operation.

Parameters
[in]prngAlgoPRNG algorithm
[in]prngContextPointer to the PRNG context
[in]messageMessage to be encrypted
[in]messageLenLength of the message to be encrypted
[out]emEncoded message
[in]kLength of the encoded message
Returns
Error code

Definition at line 1343 of file rsa.c.

◆ emsaPkcs1v15Encode()

error_t emsaPkcs1v15Encode ( const HashAlgo hash,
const uint8_t *  digest,
uint8_t *  em,
size_t  emLen 
)

EMSA-PKCS1-v1_5 encoding operation.

Parameters
[in]hashHash function used to digest the message
[in]digestDigest of the message to be signed
[out]emEncoded message
[in]emLenIntended length of the encoded message
Returns
Error code

Definition at line 1653 of file rsa.c.

◆ emsaPkcs1v15Verify()

error_t emsaPkcs1v15Verify ( const HashAlgo hash,
const uint8_t *  digest,
const uint8_t *  em,
size_t  emLen 
)

EMSA-PKCS1-v1_5 verification operation.

Parameters
[in]hashHash function
[in]digestDigest value
[in]emEncoded message
[in]emLenLength of the encoded message
Returns
Error code

Definition at line 1717 of file rsa.c.

◆ emsaPssEncode()

error_t emsaPssEncode ( const PrngAlgo prngAlgo,
void *  prngContext,
const HashAlgo hash,
size_t  saltLen,
const uint8_t *  digest,
uint8_t *  em,
uint_t  emBits 
)

EMSA-PSS encoding operation.

Parameters
[in]prngAlgoPRNG algorithm
[in]prngContextPointer to the PRNG context
[in]hashUnderlying hash function
[in]saltLenLength of the salt, in bytes
[in]digestDigest of the message to be signed
[out]emEncoded message
[in]emBitsMaximal bit length of the integer OS2IP(EM)
Returns
Error code

Definition at line 1793 of file rsa.c.

◆ emsaPssVerify()

error_t emsaPssVerify ( const HashAlgo hash,
size_t  saltLen,
const uint8_t *  digest,
uint8_t *  em,
uint_t  emBits 
)

EMSA-PSS verification operation.

Parameters
[in]hashUnderlying hash function
[in]saltLenLength of the salt, in bytes
[in]digestDigest of the message to be signed
[out]emEncoded message
[in]emBitsMaximal bit length of the integer OS2IP(EM)
Returns
Error code

Definition at line 1883 of file rsa.c.

◆ mgf1()

void mgf1 ( const HashAlgo hash,
HashContext hashContext,
const uint8_t *  seed,
size_t  seedLen,
uint8_t *  data,
size_t  dataLen 
)

MGF1 mask generation function.

Parameters
[in]hashHash function
[in]hashContextHash function context
[in]seedSeed from which the mask is generated
[in]seedLenLength of the seed in bytes
[in,out]dataData block to be masked
[in]dataLenLength of the data block in bytes

Definition at line 1988 of file rsa.c.

◆ rsadp()

__weak_func error_t rsadp ( const RsaPrivateKey key,
const Mpi c,
Mpi m 
)

RSA decryption primitive.

The RSA decryption primitive recovers the message representative from the ciphertext representative under the control of a private key

Parameters
[in]keyRSA private key
[in]cCiphertext representative
[out]mMessage representative
Returns
Error code

Definition at line 1232 of file rsa.c.

◆ rsaep()

__weak_func error_t rsaep ( const RsaPublicKey key,
const Mpi m,
Mpi c 
)

RSA encryption primitive.

The RSA encryption primitive produces a ciphertext representative from a message representative under the control of a public key

Parameters
[in]keyRSA public key
[in]mMessage representative
[out]cCiphertext representative
Returns
Error code

Definition at line 1205 of file rsa.c.

◆ rsaesOaepDecrypt()

error_t rsaesOaepDecrypt ( const RsaPrivateKey key,
const HashAlgo hash,
const char_t label,
const uint8_t *  ciphertext,
size_t  ciphertextLen,
uint8_t *  message,
size_t  messageSize,
size_t *  messageLen 
)

RSAES-OAEP decryption operation.

Parameters
[in]keyRecipient's RSA private key
[in]hashUnderlying hash function
[in]labelOptional label to be associated with the message
[in]ciphertextCiphertext to be decrypted
[in]ciphertextLenLength of the ciphertext to be decrypted
[out]messageOutput buffer where to store the decrypted message
[in]messageSizeSize of the output buffer
[out]messageLenLength of the decrypted message
Returns
Error code

Definition at line 544 of file rsa.c.

◆ rsaesOaepEncrypt()

error_t rsaesOaepEncrypt ( const PrngAlgo prngAlgo,
void *  prngContext,
const RsaPublicKey key,
const HashAlgo hash,
const char_t label,
const uint8_t *  message,
size_t  messageLen,
uint8_t *  ciphertext,
size_t *  ciphertextLen 
)

RSAES-OAEP encryption operation.

Parameters
[in]prngAlgoPRNG algorithm
[in]prngContextPointer to the PRNG context
[in]keyRecipient's RSA public key
[in]hashUnderlying hash function
[in]labelOptional label to be associated with the message
[in]messageMessage to be encrypted
[in]messageLenLength of the message to be encrypted
[out]ciphertextCiphertext resulting from the encryption operation
[out]ciphertextLenLength of the resulting ciphertext
Returns
Error code

Definition at line 438 of file rsa.c.

◆ rsaesPkcs1v15Decrypt()

error_t rsaesPkcs1v15Decrypt ( const RsaPrivateKey key,
const uint8_t *  ciphertext,
size_t  ciphertextLen,
uint8_t *  message,
size_t  messageSize,
size_t *  messageLen 
)

RSAES-PKCS1-v1_5 decryption operation.

Parameters
[in]keyRecipient's RSA private key
[in]ciphertextCiphertext to be decrypted
[in]ciphertextLenLength of the ciphertext to be decrypted
[out]messageOutput buffer where to store the decrypted message
[in]messageSizeSize of the output buffer
[out]messageLenLength of the decrypted message
Returns
Error code

Definition at line 277 of file rsa.c.

◆ rsaesPkcs1v15Encrypt()

error_t rsaesPkcs1v15Encrypt ( const PrngAlgo prngAlgo,
void *  prngContext,
const RsaPublicKey key,
const uint8_t *  message,
size_t  messageLen,
uint8_t *  ciphertext,
size_t *  ciphertextLen 
)

RSAES-PKCS1-v1_5 encryption operation.

Parameters
[in]prngAlgoPRNG algorithm
[in]prngContextPointer to the PRNG context
[in]keyRecipient's RSA public key
[in]messageMessage to be encrypted
[in]messageLenLength of the message to be encrypted
[out]ciphertextCiphertext resulting from the encryption operation
[out]ciphertextLenLength of the resulting ciphertext
Returns
Error code

Definition at line 179 of file rsa.c.

◆ rsaFreePrivateKey()

void rsaFreePrivateKey ( RsaPrivateKey key)

Release an RSA private key.

Parameters
[in]keyPointer to the RSA private key to free

Definition at line 153 of file rsa.c.

◆ rsaFreePublicKey()

void rsaFreePublicKey ( RsaPublicKey key)

Release an RSA public key.

Parameters
[in]keyPointer to the RSA public key to free

Definition at line 118 of file rsa.c.

◆ rsaGenerateKeyPair()

error_t rsaGenerateKeyPair ( const PrngAlgo prngAlgo,
void *  prngContext,
size_t  k,
uint_t  e,
RsaPrivateKey privateKey,
RsaPublicKey publicKey 
)

RSA key pair generation.

Parameters
[in]prngAlgoPRNG algorithm
[in]prngContextPointer to the PRNG context
[in]kRequired bit length of the modulus n
[in]ePublic exponent (3, 5, 17, 257 or 65537)
[out]privateKeyRSA private key
[out]publicKeyRSA public key
Returns
Error code

Definition at line 2035 of file rsa.c.

◆ rsaGeneratePrivateKey()

__weak_func error_t rsaGeneratePrivateKey ( const PrngAlgo prngAlgo,
void *  prngContext,
size_t  k,
uint_t  e,
RsaPrivateKey privateKey 
)

RSA private key generation.

Parameters
[in]prngAlgoPRNG algorithm
[in]prngContextPointer to the PRNG context
[in]kRequired bit length of the modulus n
[in]ePublic exponent (3, 5, 17, 257 or 65537)
[out]privateKeyRSA private key
Returns
Error code

Definition at line 2065 of file rsa.c.

◆ rsaGeneratePublicKey()

error_t rsaGeneratePublicKey ( const RsaPrivateKey privateKey,
RsaPublicKey publicKey 
)

Derive the public key from an RSA private key.

Parameters
[in]privateKeyRSA private key
[out]publicKeyRSA public key
Returns
Error code

Definition at line 2226 of file rsa.c.

◆ rsaInitPrivateKey()

void rsaInitPrivateKey ( RsaPrivateKey key)

Initialize an RSA private key.

Parameters
[in]keyPointer to the RSA private key to initialize

Definition at line 131 of file rsa.c.

◆ rsaInitPublicKey()

void rsaInitPublicKey ( RsaPublicKey key)

Initialize an RSA public key.

Parameters
[in]keyPointer to the RSA public key to initialize

Definition at line 105 of file rsa.c.

◆ rsasp1()

error_t rsasp1 ( const RsaPrivateKey key,
const Mpi m,
Mpi s 
)

RSA signature primitive.

The RSA signature primitive produces a signature representative from a message representative under the control of a private key

Parameters
[in]keyRSA private key
[in]mMessage representative
[out]sSignature representative
Returns
Error code

Definition at line 1302 of file rsa.c.

◆ rsassaPkcs1v15Sign()

error_t rsassaPkcs1v15Sign ( const RsaPrivateKey key,
const HashAlgo hash,
const uint8_t *  digest,
uint8_t *  signature,
size_t *  signatureLen 
)

RSASSA-PKCS1-v1_5 signature generation operation.

Parameters
[in]keySigner's RSA private key
[in]hashHash function used to digest the message
[in]digestDigest of the message to be signed
[out]signatureResulting signature
[out]signatureLenLength of the resulting signature
Returns
Error code

Definition at line 705 of file rsa.c.

◆ rsassaPkcs1v15Verify()

error_t rsassaPkcs1v15Verify ( const RsaPublicKey key,
const HashAlgo hash,
const uint8_t *  digest,
const uint8_t *  signature,
size_t  signatureLen 
)

RSASSA-PKCS1-v1_5 signature verification operation.

Parameters
[in]keySigner's RSA public key
[in]hashHash function used to digest the message
[in]digestDigest of the message whose signature is to be verified
[in]signatureSignature to be verified
[in]signatureLenLength of the signature to be verified
Returns
Error code

Definition at line 838 of file rsa.c.

◆ rsassaPssSign()

error_t rsassaPssSign ( const PrngAlgo prngAlgo,
void *  prngContext,
const RsaPrivateKey key,
const HashAlgo hash,
size_t  saltLen,
const uint8_t *  digest,
uint8_t *  signature,
size_t *  signatureLen 
)

RSASSA-PSS signature generation operation.

Parameters
[in]prngAlgoPRNG algorithm
[in]prngContextPointer to the PRNG context
[in]keySigner's RSA private key
[in]hashHash function used to digest the message
[in]saltLenLength of the salt, in bytes
[in]digestDigest of the message to be signed
[out]signatureResulting signature
[out]signatureLenLength of the resulting signature
Returns
Error code

Definition at line 959 of file rsa.c.

◆ rsassaPssVerify()

error_t rsassaPssVerify ( const RsaPublicKey key,
const HashAlgo hash,
size_t  saltLen,
const uint8_t *  digest,
const uint8_t *  signature,
size_t  signatureLen 
)

RSASSA-PSS signature verification operation.

Parameters
[in]keySigner's RSA public key
[in]hashHash function used to digest the message
[in]saltLenLength of the salt, in bytes
[in]digestDigest of the message whose signature is to be verified
[in]signatureSignature to be verified
[in]signatureLenLength of the signature to be verified
Returns
Error code

Definition at line 1079 of file rsa.c.

◆ rsavp1()

error_t rsavp1 ( const RsaPublicKey key,
const Mpi s,
Mpi m 
)

RSA verification primitive.

The RSA verification primitive recovers the message representative from the signature representative under the control of a public key

Parameters
[in]keyRSA public key
[in]sSignature representative
[out]mMessage representative
Returns
Error code

Definition at line 1323 of file rsa.c.

Variable Documentation

◆ MD2_WITH_RSA_ENCRYPTION_OID

const uint8_t MD2_WITH_RSA_ENCRYPTION_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x02}

Definition at line 60 of file rsa.c.

◆ MD5_WITH_RSA_ENCRYPTION_OID

const uint8_t MD5_WITH_RSA_ENCRYPTION_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x04}

Definition at line 62 of file rsa.c.

◆ MGF1_OID

const uint8_t MGF1_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x08}

Definition at line 91 of file rsa.c.

◆ PKCS1_OID

const uint8_t PKCS1_OID[8] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01}

Definition at line 55 of file rsa.c.

◆ RSA_ENCRYPTION_OID

const uint8_t RSA_ENCRYPTION_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01}

Definition at line 57 of file rsa.c.

◆ RSASSA_PKCS1_V1_5_WITH_SHA3_224_OID

const uint8_t RSASSA_PKCS1_V1_5_WITH_SHA3_224_OID[9] = {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x0D}

Definition at line 79 of file rsa.c.

◆ RSASSA_PKCS1_V1_5_WITH_SHA3_256_OID

const uint8_t RSASSA_PKCS1_V1_5_WITH_SHA3_256_OID[9] = {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x0E}

Definition at line 81 of file rsa.c.

◆ RSASSA_PKCS1_V1_5_WITH_SHA3_384_OID

const uint8_t RSASSA_PKCS1_V1_5_WITH_SHA3_384_OID[9] = {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x0F}

Definition at line 83 of file rsa.c.

◆ RSASSA_PKCS1_V1_5_WITH_SHA3_512_OID

const uint8_t RSASSA_PKCS1_V1_5_WITH_SHA3_512_OID[9] = {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x10}

Definition at line 85 of file rsa.c.

◆ RSASSA_PSS_OID

const uint8_t RSASSA_PSS_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0A}

Definition at line 88 of file rsa.c.

◆ SHA1_WITH_RSA_ENCRYPTION_OID

const uint8_t SHA1_WITH_RSA_ENCRYPTION_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05}

Definition at line 64 of file rsa.c.

◆ SHA224_WITH_RSA_ENCRYPTION_OID

const uint8_t SHA224_WITH_RSA_ENCRYPTION_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0E}

Definition at line 66 of file rsa.c.

◆ SHA256_WITH_RSA_ENCRYPTION_OID

const uint8_t SHA256_WITH_RSA_ENCRYPTION_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B}

Definition at line 68 of file rsa.c.

◆ SHA384_WITH_RSA_ENCRYPTION_OID

const uint8_t SHA384_WITH_RSA_ENCRYPTION_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0C}

Definition at line 70 of file rsa.c.

◆ SHA512_224_WITH_RSA_ENCRYPTION_OID

const uint8_t SHA512_224_WITH_RSA_ENCRYPTION_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0F}

Definition at line 74 of file rsa.c.

◆ SHA512_256_WITH_RSA_ENCRYPTION_OID

const uint8_t SHA512_256_WITH_RSA_ENCRYPTION_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x10}

Definition at line 76 of file rsa.c.

◆ SHA512_WITH_RSA_ENCRYPTION_OID

const uint8_t SHA512_WITH_RSA_ENCRYPTION_OID[9] = {0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0D}

Definition at line 72 of file rsa.c.