Home | History | Annotate | Line # | Download | only in man7
      1 =pod
      2 
      3 =head1 NAME
      4 
      5 EVP_SIGNATURE-RSA
      6 - The EVP_PKEY B<RSA> signature implementation
      7 
      8 =head1 DESCRIPTION
      9 
     10 Support for computing RSA signatures.
     11 See L<EVP_PKEY-RSA(7)> for information related to RSA keys.
     12 
     13 =head2 Algorithm Names
     14 
     15 In this list, names are grouped together to signify that they are the same
     16 algorithm having multiple names.  This also includes the OID in canonical
     17 decimal form (which means that they are possible to fetch if the caller has a
     18 mere OID which came out in this form after a call to L<OBJ_obj2txt(3)>).
     19 
     20 =over 4
     21 
     22 =item "RSA", "rsaEncryption", "1.2.840.113549.1.1.1"
     23 
     24 The base signature algorithm, supported explicitly fetched with
     25 L<EVP_PKEY_sign_init_ex2(3)>, and implicitly fetched (through
     26 L<RSA keys|EVP_PKEY-RSA(7)>) with L<EVP_DigestSignInit(3)> and
     27 L<EVP_DigestVerifyInit(3)>.
     28 
     29 It can't be used with L<EVP_PKEY_sign_message_init(3)>
     30 
     31 =item "RSA-RIPEMD160", "ripemd160WithRSA", "1.3.36.3.3.1.2"
     32 
     33 =item "RSA-SHA2-256", "RSA-SHA256", "sha256WithRSAEncryption", "1.2.840.113549.1.1.11"
     34 
     35 =item "RSA-SHA2-384", "RSA-SHA384", "sha384WithRSAEncryption", "1.2.840.113549.1.1.12"
     36 
     37 =item "RSA-SHA2-512", "RSA-SHA512", "sha512WithRSAEncryption", "1.2.840.113549.1.1.13"
     38 
     39 =item "RSA-SHA2-224", "RSA-SHA224", "sha224WithRSAEncryption", "1.2.840.113549.1.1.14"
     40 
     41 =item "RSA-SHA2-512/224", "RSA-SHA512-224", "sha512-224WithRSAEncryption", "1.2.840.113549.1.1.15"
     42 
     43 =item "RSA-SHA2-512/256", "RSA-SHA512-256", "sha512-256WithRSAEncryption", "1.2.840.113549.1.1.16"
     44 
     45 =item "RSA-SHA3-224", "id-rsassa-pkcs1-v1_5-with-sha3-224", "2.16.840.1.101.3.4.3.13"
     46 
     47 =item "RSA-SHA3-256", "id-rsassa-pkcs1-v1_5-with-sha3-256", "2.16.840.1.101.3.4.3.14"
     48 
     49 =item "RSA-SHA3-384", "id-rsassa-pkcs1-v1_5-with-sha3-384", "2.16.840.1.101.3.4.3.15"
     50 
     51 =item "RSA-SHA3-512", "id-rsassa-pkcs1-v1_5-with-sha3-512", "2.16.840.1.101.3.4.3.16"
     52 
     53 =item "RSA-SM3", "sm3WithRSAEncryption", "1.2.156.10197.1.504"
     54 
     55 PKCS#1 v1.5 RSA signature schemes with diverse message digest algorithms.  They
     56 are all supported explicitly fetched with L<EVP_PKEY_sign_init_ex2(3)> and
     57 L<EVP_PKEY_sign_message_init(3)>.
     58 They are all pre-set to use the pad mode "pkcs1".  This cannot be changed.
     59 
     60 =back
     61 
     62 =head2 Signature Parameters
     63 
     64 The following signature parameters can be set using EVP_PKEY_CTX_set_params().
     65 This may be called after EVP_PKEY_sign_init() or EVP_PKEY_verify_init(),
     66 and before calling EVP_PKEY_sign() or EVP_PKEY_verify().  They may also be set
     67 using EVP_PKEY_sign_init_ex() or EVP_PKEY_verify_init_ex().
     68 
     69 =over 4
     70 
     71 =item "digest" (B<OSSL_SIGNATURE_PARAM_DIGEST>) <UTF8 string>
     72 
     73 =item "properties" (B<OSSL_SIGNATURE_PARAM_PROPERTIES>) <UTF8 string>
     74 
     75 These are not supported with the RSA signature schemes that already include a
     76 message digest algorithm, See L</Algorithm Names> above.
     77 
     78 These common parameters are described in L<provider-signature(7)>.
     79 
     80 =item "pad-mode" (B<OSSL_SIGNATURE_PARAM_PAD_MODE>) <UTF8 string>
     81 
     82 The type of padding to be used. Its value can be one of the following:
     83 
     84 =over 4
     85 
     86 =item "none" (B<OSSL_PKEY_RSA_PAD_MODE_NONE>)
     87 
     88 =item "pkcs1" (B<OSSL_PKEY_RSA_PAD_MODE_PKCSV15>)
     89 
     90 =item "x931" (B<OSSL_PKEY_RSA_PAD_MODE_X931>)
     91 
     92 This padding mode is no longer supported by the FIPS provider for signature
     93 generation, but may be used for signature verification for legacy use cases.
     94 (This is a FIPS 140-3 requirement)
     95 
     96 =item "pss" (B<OSSL_PKEY_RSA_PAD_MODE_PSS>)
     97 
     98 =back
     99 
    100 =item "mgf1-digest" (B<OSSL_SIGNATURE_PARAM_MGF1_DIGEST>) <UTF8 string>
    101 
    102 The digest algorithm name to use for the maskGenAlgorithm used by "pss" mode.
    103 
    104 =item "mgf1-properties" (B<OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES>) <UTF8 string>
    105 
    106 Sets the name of the property query associated with the "mgf1-digest" algorithm.
    107 NULL is used if this optional value is not set.
    108 
    109 =item "saltlen" (B<OSSL_SIGNATURE_PARAM_PSS_SALTLEN>) <integer> or <UTF8 string>
    110 
    111 The "pss" mode minimum salt length. The value can either be an integer,
    112 a string value representing a number or one of the following string values:
    113 
    114 =over 4
    115 
    116 =item "digest" (B<OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST>)
    117 
    118 Use the same length as the digest size.
    119 
    120 =item "max" (B<OSSL_PKEY_RSA_PSS_SALT_LEN_MAX>)
    121 
    122 Use the maximum salt length.
    123 
    124 =item "auto" (B<OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO>)
    125 
    126 Auto detect the salt length.
    127 
    128 =item "auto-digestmax" (B<OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX>)
    129 
    130 Auto detect the salt length when verifying.  Maximize the salt length up to the
    131 digest size when signing to comply with FIPS 186-4 section 5.5.
    132 
    133 =back
    134 
    135 =back
    136 
    137 The OpenSSL FIPS provider also supports the following parameters:
    138 
    139 =over 4
    140 
    141 =item "key-check" (B<OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK>) <integer>
    142 
    143 =item "digest-check" (B<OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK>) <integer>
    144 
    145 =item "sign-x931-pad-check" (B<OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK>) <integer>
    146 
    147 These parameters are described in L<provider-signature(7)>.
    148 
    149 =item "rsa-pss-saltlen-check" (B<OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK>) <integer>
    150 
    151 The default value of 1 causes an error during signature generation or
    152 verification if salt length (B<OSSL_SIGNATURE_PARAM_PSS_SALTLEN>) is not between
    153 zero and the output block size of the digest function (inclusive).
    154 Setting this to zero will ignore the error and set the approved "fips-indicator"
    155 to 0.
    156 This option breaks FIPS compliance if it causes the approved "fips-indicator"
    157 to return 0.
    158 
    159 =back
    160 
    161 The following signature parameters can be retrieved using
    162 EVP_PKEY_CTX_get_params().
    163 
    164 =over 4
    165 
    166 =item "algorithm-id" (B<OSSL_SIGNATURE_PARAM_ALGORITHM_ID>) <octet string>
    167 
    168 =item "fips-indicator" (B<OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR>) <integer>
    169 
    170 =item "verify-message" (B<OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE> <integer>
    171 
    172 These common parameter are described in L<provider-signature(7)>.
    173 
    174 =item "digest" (B<OSSL_SIGNATURE_PARAM_DIGEST>) <UTF8 string>
    175 
    176 =item "pad-mode" (B<OSSL_SIGNATURE_PARAM_PAD_MODE>) <UTF8 string>
    177 
    178 =item "mgf1-digest" (B<OSSL_SIGNATURE_PARAM_MGF1_DIGEST>) <UTF8 string>
    179 
    180 =item "saltlen" (B<OSSL_SIGNATURE_PARAM_PSS_SALTLEN>) <integer> or <UTF8 string>
    181 
    182 These parameters are as described above.
    183 
    184 =back
    185 
    186 =head1 SEE ALSO
    187 
    188 L<EVP_PKEY_CTX_set_params(3)>,
    189 L<EVP_PKEY_sign(3)>,
    190 L<EVP_PKEY_verify(3)>,
    191 L<provider-signature(7)>,
    192 
    193 =head1 COPYRIGHT
    194 
    195 Copyright 2020-2026 The OpenSSL Project Authors. All Rights Reserved.
    196 
    197 Licensed under the Apache License 2.0 (the "License").  You may not use
    198 this file except in compliance with the License.  You can obtain a copy
    199 in the file LICENSE in the source distribution or at
    200 L<https://www.openssl.org/source/license.html>.
    201 
    202 =cut
    203