2 ''' $RCSfile$$Revision$$Date$
20 .ie \\n(.$>=3 .ne \\$3
36 ''' Set up \*(-- to give an unbreakable dash;
37 ''' string Tr holds user defined translation string.
38 ''' Bell System Logo is used as a dummy character.
44 .if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
45 .if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
48 ''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
49 ''' \*(L" and \*(R", except that they are used on ".xx" lines,
50 ''' such as .IP and .SH, which do another additional levels of
51 ''' double-quote interpretation
80 .\" If the F register is turned on, we'll generate
81 .\" index entries out stderr for the following things:
86 .\" X<> Xref (embedded
87 .\" Of course, you have to process the output yourself
88 .\" in some meaninful fashion.
91 .tm Index:\\$1\t\\n%\t"\\$2"
96 .TH DSA_sign 3 "0.9.7d" "2/Sep/2004" "OpenSSL"
100 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
101 .de CQ \" put $1 in typewriter font
107 \\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
110 .\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
111 . \" AM - accent mark definitions
113 . \" fudge factors for nroff and troff
122 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
128 . \" simple accents for nroff and troff
141 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
142 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
143 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
144 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
145 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
146 . ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
147 . ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
148 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
149 . ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
151 . \" troff and (daisy-wheel) nroff accents
152 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
153 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
154 .ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
155 .ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
156 .ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
157 .ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
158 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
159 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
160 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
161 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
162 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
163 .ds ae a\h'-(\w'a'u*4/10)'e
164 .ds Ae A\h'-(\w'A'u*4/10)'E
165 .ds oe o\h'-(\w'o'u*4/10)'e
166 .ds Oe O\h'-(\w'O'u*4/10)'E
167 . \" corrections for vroff
168 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
169 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
170 . \" for low resolution devices (crt and lpr)
171 .if \n(.H>23 .if \n(.V>19 \
175 . ds v \h'-1'\o'\(aa\(ga'
191 DSA_sign, DSA_sign_setup, DSA_verify \- DSA signatures
195 \& #include <openssl/dsa.h>
198 \& int DSA_sign(int type, const unsigned char *dgst, int len,
199 \& unsigned char *sigret, unsigned int *siglen, DSA *dsa);
202 \& int DSA_sign_setup(DSA *dsa, BN_CTX *ctx, BIGNUM **kinvp,
206 \& int DSA_verify(int type, const unsigned char *dgst, int len,
207 \& unsigned char *sigbuf, int siglen, DSA *dsa);
210 \fIDSA_sign()\fR computes a digital signature on the \fBlen\fR byte message
211 digest \fBdgst\fR using the private key \fBdsa\fR and places its ASN.1 DER
212 encoding at \fBsigret\fR. The length of the signature is places in
213 *\fBsiglen\fR. \fBsigret\fR must point to \fIDSA_size\fR\|(\fBdsa\fR) bytes of memory.
215 \fIDSA_sign_setup()\fR may be used to precompute part of the signing
216 operation in case signature generation is time-critical. It expects
217 \fBdsa\fR to contain DSA parameters. It places the precomputed values
218 in newly allocated \fBBIGNUM\fRs at *\fBkinvp\fR and *\fBrp\fR, after freeing
219 the old ones unless *\fBkinvp\fR and *\fBrp\fR are NULL. These values may
220 be passed to \fIDSA_sign()\fR in \fBdsa->kinv\fR and \fBdsa->r\fR.
221 \fBctx\fR is a pre-allocated \fBBN_CTX\fR or NULL.
223 \fIDSA_verify()\fR verifies that the signature \fBsigbuf\fR of size \fBsiglen\fR
224 matches a given message digest \fBdgst\fR of size \fBlen\fR.
225 \fBdsa\fR is the signer's public key.
227 The \fBtype\fR parameter is ignored.
229 The PRNG must be seeded before \fIDSA_sign()\fR (or \fIDSA_sign_setup()\fR)
232 \fIDSA_sign()\fR and \fIDSA_sign_setup()\fR return 1 on success, 0 on error.
233 \fIDSA_verify()\fR returns 1 for a valid signature, 0 for an incorrect
234 signature and \-1 on error. The error codes can be obtained by
237 US Federal Information Processing Standard FIPS 186 (Digital Signature
238 Standard, DSS), ANSI X9.30
240 dsa(3), ERR_get_error(3), rand(3),
243 \fIDSA_sign()\fR and \fIDSA_verify()\fR are available in all versions of SSLeay.
244 \fIDSA_sign_setup()\fR was added in SSLeay 0.8.
247 .IX Title "DSA_sign 3"
248 .IX Name "DSA_sign, DSA_sign_setup, DSA_verify - DSA signatures"
252 .IX Header "SYNOPSIS"
254 .IX Header "DESCRIPTION"
256 .IX Header "RETURN VALUES"
258 .IX Header "CONFORMING TO"
260 .IX Header "SEE ALSO"