RSA_private_encrypt.3ossl 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
  2. .\"
  3. .\" Standard preamble:
  4. .\" ========================================================================
  5. .de Sp \" Vertical space (when we can't use .PP)
  6. .if t .sp .5v
  7. .if n .sp
  8. ..
  9. .de Vb \" Begin verbatim text
  10. .ft CW
  11. .nf
  12. .ne \\$1
  13. ..
  14. .de Ve \" End verbatim text
  15. .ft R
  16. .fi
  17. ..
  18. .\" Set up some character translations and predefined strings. \*(-- will
  19. .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
  20. .\" double quote, and \*(R" will give a right double quote. \*(C+ will
  21. .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
  22. .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
  23. .\" nothing in troff, for use with C<>.
  24. .tr \(*W-
  25. .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
  26. .ie n \{\
  27. . ds -- \(*W-
  28. . ds PI pi
  29. . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
  30. . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
  31. . ds L" ""
  32. . ds R" ""
  33. . ds C` ""
  34. . ds C' ""
  35. 'br\}
  36. .el\{\
  37. . ds -- \|\(em\|
  38. . ds PI \(*p
  39. . ds L" ``
  40. . ds R" ''
  41. . ds C`
  42. . ds C'
  43. 'br\}
  44. .\"
  45. .\" Escape single quotes in literal strings from groff's Unicode transform.
  46. .ie \n(.g .ds Aq \(aq
  47. .el .ds Aq '
  48. .\"
  49. .\" If the F register is >0, we'll generate index entries on stderr for
  50. .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
  51. .\" entries marked with X<> in POD. Of course, you'll have to process the
  52. .\" output yourself in some meaningful fashion.
  53. .\"
  54. .\" Avoid warning from groff about undefined register 'F'.
  55. .de IX
  56. ..
  57. .nr rF 0
  58. .if \n(.g .if rF .nr rF 1
  59. .if (\n(rF:(\n(.g==0)) \{\
  60. . if \nF \{\
  61. . de IX
  62. . tm Index:\\$1\t\\n%\t"\\$2"
  63. ..
  64. . if !\nF==2 \{\
  65. . nr % 0
  66. . nr F 2
  67. . \}
  68. . \}
  69. .\}
  70. .rr rF
  71. .\"
  72. .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  73. .\" Fear. Run. Save yourself. No user-serviceable parts.
  74. . \" fudge factors for nroff and troff
  75. .if n \{\
  76. . ds #H 0
  77. . ds #V .8m
  78. . ds #F .3m
  79. . ds #[ \f1
  80. . ds #] \fP
  81. .\}
  82. .if t \{\
  83. . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
  84. . ds #V .6m
  85. . ds #F 0
  86. . ds #[ \&
  87. . ds #] \&
  88. .\}
  89. . \" simple accents for nroff and troff
  90. .if n \{\
  91. . ds ' \&
  92. . ds ` \&
  93. . ds ^ \&
  94. . ds , \&
  95. . ds ~ ~
  96. . ds /
  97. .\}
  98. .if t \{\
  99. . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
  100. . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
  101. . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
  102. . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
  103. . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
  104. . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
  105. .\}
  106. . \" troff and (daisy-wheel) nroff accents
  107. .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
  108. .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
  109. .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
  110. .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
  111. .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
  112. .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
  113. .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
  114. .ds ae a\h'-(\w'a'u*4/10)'e
  115. .ds Ae A\h'-(\w'A'u*4/10)'E
  116. . \" corrections for vroff
  117. .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
  118. .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
  119. . \" for low resolution devices (crt and lpr)
  120. .if \n(.H>23 .if \n(.V>19 \
  121. \{\
  122. . ds : e
  123. . ds 8 ss
  124. . ds o a
  125. . ds d- d\h'-1'\(ga
  126. . ds D- D\h'-1'\(hy
  127. . ds th \o'bp'
  128. . ds Th \o'LP'
  129. . ds ae ae
  130. . ds Ae AE
  131. .\}
  132. .rm #[ #] #H #V #F C
  133. .\" ========================================================================
  134. .\"
  135. .IX Title "RSA_PRIVATE_ENCRYPT 3ossl"
  136. .TH RSA_PRIVATE_ENCRYPT 3ossl "2024-09-03" "3.3.2" "OpenSSL"
  137. .\" For nroff, turn off justification. Always turn off hyphenation; it makes
  138. .\" way too many mistakes in technical documents.
  139. .if n .ad l
  140. .nh
  141. .SH "NAME"
  142. RSA_private_encrypt, RSA_public_decrypt \- low\-level signature operations
  143. .SH "SYNOPSIS"
  144. .IX Header "SYNOPSIS"
  145. .Vb 1
  146. \& #include <openssl/rsa.h>
  147. .Ve
  148. .PP
  149. The following functions have been deprecated since OpenSSL 3.0, and can be
  150. hidden entirely by defining \fB\s-1OPENSSL_API_COMPAT\s0\fR with a suitable version value,
  151. see \fBopenssl_user_macros\fR\|(7):
  152. .PP
  153. .Vb 2
  154. \& int RSA_private_encrypt(int flen, unsigned char *from,
  155. \& unsigned char *to, RSA *rsa, int padding);
  156. \&
  157. \& int RSA_public_decrypt(int flen, unsigned char *from,
  158. \& unsigned char *to, RSA *rsa, int padding);
  159. .Ve
  160. .SH "DESCRIPTION"
  161. .IX Header "DESCRIPTION"
  162. Both of the functions described on this page are deprecated.
  163. Applications should instead use \fBEVP_PKEY_sign_init_ex\fR\|(3),
  164. \&\fBEVP_PKEY_sign\fR\|(3), \fBEVP_PKEY_verify_recover_init\fR\|(3), and
  165. \&\fBEVP_PKEY_verify_recover\fR\|(3).
  166. .PP
  167. These functions handle \s-1RSA\s0 signatures at a low-level.
  168. .PP
  169. \&\fBRSA_private_encrypt()\fR signs the \fBflen\fR bytes at \fBfrom\fR (usually a
  170. message digest with an algorithm identifier) using the private key
  171. \&\fBrsa\fR and stores the signature in \fBto\fR. \fBto\fR must point to
  172. \&\fBRSA_size(rsa)\fR bytes of memory.
  173. .PP
  174. \&\fBpadding\fR denotes one of the following modes:
  175. .IP "\s-1RSA_PKCS1_PADDING\s0" 4
  176. .IX Item "RSA_PKCS1_PADDING"
  177. \&\s-1PKCS\s0 #1 v1.5 padding. This function does not handle the
  178. \&\fBalgorithmIdentifier\fR specified in \s-1PKCS\s0 #1. When generating or
  179. verifying \s-1PKCS\s0 #1 signatures, \fBRSA_sign\fR\|(3) and \fBRSA_verify\fR\|(3) should be
  180. used.
  181. .IP "\s-1RSA_NO_PADDING\s0" 4
  182. .IX Item "RSA_NO_PADDING"
  183. Raw \s-1RSA\s0 signature. This mode should \fIonly\fR be used to implement
  184. cryptographically sound padding modes in the application code.
  185. Signing user data directly with \s-1RSA\s0 is insecure.
  186. .PP
  187. \&\fBRSA_public_decrypt()\fR recovers the message digest from the \fBflen\fR
  188. bytes long signature at \fBfrom\fR using the signer's public key
  189. \&\fBrsa\fR. \fBto\fR must point to a memory section large enough to hold the
  190. message digest (which is smaller than \fBRSA_size(rsa) \-
  191. 11\fR). \fBpadding\fR is the padding mode that was used to sign the data.
  192. .SH "RETURN VALUES"
  193. .IX Header "RETURN VALUES"
  194. \&\fBRSA_private_encrypt()\fR returns the size of the signature (i.e.,
  195. RSA_size(rsa)). \fBRSA_public_decrypt()\fR returns the size of the
  196. recovered message digest.
  197. .PP
  198. On error, \-1 is returned; the error codes can be
  199. obtained by \fBERR_get_error\fR\|(3).
  200. .SH "SEE ALSO"
  201. .IX Header "SEE ALSO"
  202. \&\fBERR_get_error\fR\|(3),
  203. \&\fBRSA_sign\fR\|(3), \fBRSA_verify\fR\|(3),
  204. \&\fBEVP_PKEY_sign\fR\|(3), \fBEVP_PKEY_verify_recover\fR\|(3)
  205. .SH "HISTORY"
  206. .IX Header "HISTORY"
  207. Both of these functions were deprecated in OpenSSL 3.0.
  208. .SH "COPYRIGHT"
  209. .IX Header "COPYRIGHT"
  210. Copyright 2000\-2021 The OpenSSL Project Authors. All Rights Reserved.
  211. .PP
  212. Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
  213. this file except in compliance with the License. You can obtain a copy
  214. in the file \s-1LICENSE\s0 in the source distribution or at
  215. <https://www.openssl.org/source/license.html>.