FreeBSD Manual Pages
DSA(3) Library Functions Manual DSA(3) NAME asn1toDSApriv, dsagen, dsasign, dsaverify, dsapuballoc, dsapubfree, dsaprivalloc, dsaprivfree, dsasigalloc, dsasigfree, dsaprivtopub - dig- ital signature algorithm SYNOPSIS #include <u.h> #include <libc.h> #include <mp.h> #include <libsec.h> DSApriv* dsagen(DSApub *opub) DSAsig* dsasign(DSApriv *k, mpint *m) int dsaverify(DSApub *k, DSAsig *sig, mpint *m) DSApub* dsapuballoc(void) void dsapubfree(DSApub*) DSApriv* dsaprivalloc(void) void dsaprivfree(DSApriv*) DSAsig* dsasigalloc(void) void dsasigfree(DSAsig*) DSApub* dsaprivtopub(DSApriv*) DSApriv* asn1toDSApriv(uchar *priv, int npriv) DESCRIPTION DSA is the NIST approved digital signature algorithm. The owner of a key publishes the public part of the key: struct DSApub { mpint *p; // modulus mpint *q; // group order, q divides p-1 mpint *alpha; // group generator mpint *key; // alpha**secret mod p }; This part can be used for verifying signatures (with dsaverify) created by the owner. The owner signs (with dsasign) using his private key: struct DSApriv { DSApub pub; mpint *secret; // (decryption key) }; Keys are generated using dsagen. If dsagen's argument opub is nil, a key is created using a new p and q generated by DSAprimes (see prime((3))). Otherwise, p and q are copied from the old key. Dsaprivtopub returns a newly allocated copy of the public key corre- sponding to the private key. The routines dsapuballoc, dsapubfree, dsaprivalloc, and dsaprivfree are provided to manage key storage. Dsasign signs message m using a private key k yielding a struct DSAsig { mpint *r, *s; }; Dsaverify returns 0 if the signature is valid and -1 if not. The routines dsasigalloc and dsasigfree are provided to manage signa- ture storage. Asn1toDSApriv converts an ASN1 formatted DSA private key into the cor- responding DSApriv structure; see rsa((3)) for other ASN1 routines. SOURCE /src/libsec SEE ALSO mp((3)), aes((3)), blowfish((3)), des((3)), rc4((3)), rsa((3)), sechash((3)), prime((3)), rand((3)) DSA(3)
NAME | SYNOPSIS | DESCRIPTION | SOURCE | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dsa&sektion=3&manpath=FreeBSD+Ports+15.0.quarterly>
