summaryrefslogtreecommitdiff
path: root/lib/libcrypto/man/DSA_sign.3
blob: 371f1f4555b674cf92c2ca54a2f2732f9bb38c5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
.Dd $Mdocdate: November 2 2016 $
.Dt DSA_SIGN 3
.Os
.Sh NAME
.Nm DSA_sign ,
.Nm DSA_sign_setup ,
.Nm DSA_verify
.Nd DSA signatures
.Sh SYNOPSIS
.In openssl/dsa.h
.Ft int
.Fo DSA_sign
.Fa "int type"
.Fa "const unsigned char *dgst"
.Fa "int len"
.Fa "unsigned char *sigret"
.Fa "unsigned int *siglen"
.Fa "DSA *dsa"
.Fc
.Ft int
.Fo DSA_sign_setup
.Fa "DSA *dsa"
.Fa "BN_CTX *ctx"
.Fa "BIGNUM **kinvp"
.Fa "BIGNUM **rp"
.Fc
.Ft int
.Fo DSA_verify
.Fa "int type"
.Fa "const unsigned char *dgst"
.Fa "int len"
.Fa "unsigned char *sigbuf"
.Fa "int siglen"
.Fa "DSA *dsa"
.Fc
.Sh DESCRIPTION
.Fn DSA_sign
computes a digital signature on the
.Fa len
byte message digest
.Fa dgst
using the private key
.Fa dsa
and places its ASN.1 DER encoding at
.Fa sigret .
The length of the signature is placed in
.Pf * Fa siglen .
.Fa sigret
must point to
.Fn DSA_size dsa
bytes of memory.
.Pp
.Fn DSA_sign_setup
may be used to precompute part of the signing operation in case
signature generation is time-critical.
It expects
.Fa dsa
to contain DSA parameters.
It places the precomputed values in newly allocated
.Vt BIGNUM Ns s
at
.Pf * Fa kinvp
and
.Pf * Fa rp ,
after freeing the old ones unless
.Fa kinvp
and
.Fa rp
are
.Dv NULL .
These values may be passed to
.Fn DSA_sign
in
.Fa dsa->kinv
and
.Sy dsa->r .
.Fa ctx
is a pre-allocated
.Vt BN_CTX
or
.Dv NULL .
.Pp
.Fn DSA_verify
verifies that the signature
.Fa sigbuf
of size
.Fa siglen
matches a given message digest
.Fa dgst
of size
.Fa len .
.Fa dsa
is the signer's public key.
.Pp
The
.Fa type
parameter is ignored.
.Sh RETURN VALUES
.Fn DSA_sign
and
.Fn DSA_sign_setup
return 1 on success or 0 on error.
.Fn DSA_verify
returns 1 for a valid signature, 0 for an incorrect signature,
and -1 on error.
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr dsa 3 ,
.Xr DSA_do_sign 3 ,
.Xr ERR_get_error 3 ,
.Xr rand 3
.Sh STANDARDS
US Federal Information Processing Standard FIPS 186 (Digital Signature
Standard, DSS), ANSI X9.30
.Sh HISTORY
.Fn DSA_sign
and
.Fn DSA_verify
are available in all versions of SSLeay.
.Fn DSA_sign_setup
was added in SSLeay 0.8.