Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dsa(3) — Tru64 UNIX 5.1b

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bn(3)

dh(3)

err(3)

rand_ssl(3)

rsa(3)

sha(3)

DSA_new(3)

DSA_size(3)

DSA_generate_parameters(3)

DSA_dup_DH(3)

DSA_generate_key(3)

DSA_sign(3)

DSA_set_method(3)

DSA_get_ex_new_index(3)

RSA_print(3)

dsa(3)  —  Subroutines

NAME

dsa − Digital Signature Algorithm

SYNOPSIS

#include <openssl/dsa.h>
#include <openssl/engine.h> DSA ∗ DSA_new(
        void ); void DSA_free(
        DSA ∗dsa ); int DSA_size(
        DSA ∗dsa ); DSA ∗ DSA_generate_parameters(
        int bits,
        unsigned char ∗seed,
        int seed_len,
        int ∗counter_ret,
        unsigned long ∗h_ret,
        void (∗callback)(int, int, void∗),
        void ∗cb_arg ); DH ∗ DSA_dup_DH(
        DSA ∗r ); int DSA_generate_key(
        DSA ∗dsa ); int DSA_sign(
        int dummy,
        const unsigned char ∗dgst,
        int len,
        unsigned char ∗sigret,
        unsigned int ∗siglen,
        DSA ∗dsa ); int DSA_sign_setup(
        DSA ∗dsa,
        BN_CTX ∗ctx,
        BIGNUM ∗∗kinvp,
        BIGNUM ∗∗rp ); int DSA_verify(
        int dummy,
        const unsigned char ∗dgst,
        int len,
        unsigned char ∗sigbuf,
        int siglen,
        DSA ∗dsa ); void DSA_set_default_openssl_method(
        DSA_METHOD ∗meth ); DSA_METHOD ∗DSA_get_default_openssl_method(
        void ); int DSA_set_method(
        DSA ∗dsa,
        ENGINE ∗engine ); DSA ∗DSA_new_method(
        ENGINE ∗engine ); DSA_METHOD ∗DSA_OpenSSL(
        void ); int DSA_get_ex_new_index(
        long argl,
        char ∗argp,
        int (∗new_func)(),
        int (∗dup_func)(),
        void (∗free_func)() ); int DSA_set_ex_data(
        DSA ∗d,
        int idx,
        char ∗arg ); char ∗DSA_get_ex_data(
        DSA ∗d,
        int idx ); DSA_SIG ∗DSA_SIG_new(
        void ); voidDSA_SIG_free(
        DSA_SIG ∗a ); int i2d_DSA_SIG(
        DSA_SIG ∗a,
        unsigned char ∗∗pp ); DSA_SIG ∗d2i_DSA_SIG(
        DSA_SIG ∗∗v,
        unsigned char ∗∗pp,
        long length ); DSA_SIG ∗DSA_do_sign(
        const unsigned char ∗dgst,
        int dlen,
        DSA ∗dsa ); int DSA_do_verify(
        const unsigned char ∗dgst,
        int dgst_len,
        DSA_SIG ∗sig,
        DSA ∗dsa ); DSA ∗ d2i_DSAPublicKey(
        DSA ∗∗a,
        unsigned char ∗∗pp,
        long length ); DSA ∗d2i_DSAPrivateKey(
        DSA ∗∗a,
        unsigned char ∗∗pp,
        long length ); DSA ∗ d2i_DSAparams(
        DSA ∗∗a,
        unsigned char ∗∗pp,
        long length ); int i2d_DSAPublicKey(
        DSA ∗a,
        unsigned char ∗∗pp ); int i2d_DSAPrivateKey(
        DSA ∗a,
        unsigned char ∗∗pp ); int i2d_DSAparams(
        DSA ∗a,
        unsigned char ∗∗pp ); int DSAparams_print(
        BIO ∗bp,
        DSA ∗x ); int DSAparams_print_fp(
        FILE ∗fp,
        DSA ∗x ); int DSA_print(
        BIO ∗bp,
        DSA ∗x,
        int off ); int DSA_print_fp(
        FILE ∗bp,
        DSA ∗x,
        int off );

DESCRIPTION

These functions implement the Digital Signature Algorithm (DSA).  The generation of shared DSA parameters is described in DSA_generate_parameters(3); DSA_generate_key(3) describes how to generate a signature key. Signature generation and verification are described in DSA_sign(3). 

The DSA structure consists of several BIGNUM components. 

 struct
        {
        BIGNUM ∗p;// prime number (public)
        BIGNUM ∗q;// 160-bit subprime, q | p-1 (public)
        BIGNUM ∗g;// generator of subgroup (public)
        BIGNUM ∗priv_key;// private key x
        BIGNUM ∗pub_key;// public key y = g^x
        // ...
        }
 DSA;

In public keys, priv_key is NULL. 

DSA conforms to US Federal Information Processing Standard FIPS 186 (Digital Signature Standard, DSS), ANSI X9.30

SEE ALSO

Functions: bn(3), dh(3), err(3), rand_ssl(3), rsa(3), sha(3), DSA_new(3), DSA_size(3), DSA_generate_parameters(3), DSA_dup_DH(3), DSA_generate_key(3), DSA_sign(3), DSA_set_method(3), DSA_get_ex_new_index(3), RSA_print(3)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026