Windows PowerShell command on Get-command ecdsa
MyWebUniversity

Manual Pages for UNIX Operating System command usage for man ecdsa

OpenSSL ecdsa(3openssl)

NNNNAAAAMMMMEEEE

ecdsa - Elliptic Curve Digital Signature Algorithm

SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS

#include

ECDSA_SIG* ECDSA_SIG_new(void);

void ECDSA_SIG_free(ECDSA_SIG *sig);

int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp);

ECDSA_SIG* d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp,

long len);

ECDSA_SIG* ECDSA_do_sign(const unsigned char *dgst, int dgst_len,

EC_KEY *eckey);

ECDSA_SIG* ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen,

const BIGNUM *kinv, const BIGNUM *rp,

EC_KEY *eckey);

int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,

const ECDSA_SIG *sig, EC_KEY* eckey);

int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx,

BIGNUM **kinv, BIGNUM **rp);

int ECDSA_sign(int type, const unsigned char *dgst,

int dgstlen, unsigned char *sig,

unsigned int *siglen, EC_KEY *eckey);

int ECDSA_sign_ex(int type, const unsigned char *dgst,

int dgstlen, unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv,

const BIGNUM *rp, EC_KEY *eckey);

int ECDSA_verify(int type, const unsigned char *dgst,

int dgstlen, const unsigned char *sig,

int siglen, EC_KEY *eckey);

int ECDSA_size(const EC_KEY *eckey);

const ECDSA_METHOD* ECDSA_OpenSSL(void);

void ECDSA_set_default_method(const ECDSA_METHOD *meth);

const ECDSA_METHOD* ECDSA_get_default_method(void);

int ECDSA_set_method(EC_KEY *eckey,const ECDSA_METHOD *meth);

int ECDSA_get_ex_new_index(long argl, void *argp,

CRYPTO_EX_new *new_func,

CRYPTO_EX_dup *dup_func,

CRYPTO_EX_free *free_func);

int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg);

void* ECDSA_get_ex_data(EC_KEY *d, int idx);

DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN

The EEEECCCCDDDDSSSSAAAA_SSSSIIIIGGGG structure consists of two BIGNUMs for the r

and s value of a ECDSA signature (see X9.62 or FIPS 186-2).

19/May/2005 Last change: 0.9.8o 1

OpenSSL ecdsa(3openssl)

struct { BIGNUM *r; BIGNUM *s;

} ECDSA_SIG;

ECDSA_SIG_new() allocates a new EEEECCCCDDDDSSSSAAAA_SSSSIIIIGGGG structure (note:

this function also allocates the BIGNUMs) and initialize it.

ECDSA_SIG_free() frees the EEEECCCCDDDDSSSSAAAA_SSSSIIIIGGGG structure ssssiiiigggg.

i2d_ECDSA_SIG() creates the DER encoding of the ECDSA

signature ssssiiiigggg and writes the encoded signature to ****pppppppp (note:

if pppppppp is NULL iiii2222dddd_EEEECCCCDDDDSSSSAAAA_SSSSIIIIGGGG returns the expected length in

bytes of the DER encoded signature). iiii2222dddd_EEEECCCCDDDDSSSSAAAA_SSSSIIIIGGGG returns

the length of the DER encoded signature (or 0 on error).

d2i_ECDSA_SIG() decodes a DER encoded ECDSA signature and

returns the decoded signature in a newly allocated EEEECCCCDDDDSSSSAAAA_SSSSIIIIGGGG

structure. ****ssssiiiigggg points to the buffer containing the DER encoded signature of size lllleeeennnn.

ECDSA_size() returns the maximum length of a DER encoded

ECDSA signature created with the private EC key eeeecccckkkkeeeeyyyy.

ECDSA_sign_setup() may be used to precompute parts of the

signing operation. eeeecccckkkkeeeeyyyy is the private EC key and ccccttttxxxx is a

pointer to BBBBNNNN_CCCCTTTTXXXX structure (or NULL). The precomputed

values or returned in kkkkiiiinnnnvvvv and rrrrpppp and can be used in a later

call to EEEECCCCDDDDSSSSAAAA_ssssiiiiggggnnnn_eeeexxxx or EEEECCCCDDDDSSSSAAAA_ddddoooo_ssssiiiiggggnnnn_eeeexxxx.

ECDSA_sign() is wrapper function for ECDSA_sign_ex with kkkkiiiinnnnvvvv

and rrrrpppp set to NULL.

ECDSA_sign_ex() computes a digital signature of the ddddggggssssttttlllleeeennnn

bytes hash value ddddggggsssstttt using the private EC key eeeecccckkkkeeeeyyyy and the

optional pre-computed values kkkkiiiinnnnvvvv and rrrrpppp. The DER encoded

signatures is stored in ssssiiiigggg and it's length is returned in

ssssiiiigggg_lllleeeennnn. Note: ssssiiiigggg must point to EEEECCCCDDDDSSSSAAAA_ssssiiiizzzzeeee bytes of memory.

The parameter ttttyyyyppppeeee is ignored.

ECDSA_verify() verifies that the signature in ssssiiiigggg of size

ssssiiiigggglllleeeennnn is a valid ECDSA signature of the hash value value ddddggggsssstttt of size ddddggggssssttttlllleeeennnn using the public key eeeecccckkkkeeeeyyyy. The parameter ttttyyyyppppeeee is ignored.

ECDSA_do_sign() is wrapper function for ECDSA_do_sign_ex

with kkkkiiiinnnnvvvv and rrrrpppp set to NULL.

ECDSA_do_sign_ex() computes a digital signature of the

ddddggggsssstttt_lllleeeennnn bytes hash value ddddggggsssstttt using the private key eeeecccckkkkeeeeyyyy

and the optional pre-computed values kkkkiiiinnnnvvvv and rrrrpppp. The

19/May/2005 Last change: 0.9.8o 2

OpenSSL ecdsa(3openssl)

signature is returned in a newly allocated EEEECCCCDDDDSSSSAAAA_SSSSIIIIGGGG

structure (or NULL on error).

ECDSA_do_verify() verifies that the signature ssssiiiigggg is a valid

ECDSA signature of the hash value ddddggggsssstttt of size ddddggggsssstttt_lllleeeennnn

using the public key eeeecccckkkkeeeeyyyy. RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEESSSS

ECDSA_size() returns the maximum length signature or 0 on

error.

ECDSA_sign_setup() and ECDSA_sign() return 1 if successful

or -1 on error.

ECDSA_verify() and ECDSA_do_verify() return 1 for a valid

signature, 0 for an invalid signature and -1 on error. The

error codes can be obtained by ERR_get_error(3).

EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS

Creating a ECDSA signature of given SHA-1 hash value using

the named curve secp192k1.

First step: create a EC_KEY object (note: this part is nnnnooootttt

ECDSA specific) int ret;

ECDSA_SIG *sig;

EC_KEY *eckey = EC_KEY_new();

if (eckey == NULL) { /* error */ }

key->group = EC_GROUP_new_by_nid(NID_secp192k1);

if (key->group == NULL)

{ /* error */ }

if (!EC_KEY_generate_key(eckey))

{ /* error */ }

Second step: compute the ECDSA signature of a SHA-1 hash

value using EEEECCCCDDDDSSSSAAAA_ddddoooo_ssssiiiiggggnnnn

sig = ECDSA_do_sign(digest, 20, eckey);

if (sig == NULL) { /* error */ }

or using EEEECCCCDDDDSSSSAAAA_ssssiiiiggggnnnn

19/May/2005 Last change: 0.9.8o 3

OpenSSL ecdsa(3openssl)

unsigned char *buffer, *pp;

int buf_len;

buf_len = ECDSA_size(eckey);

buffer = OPENSSL_malloc(buf_len);

pp = buffer;

if (!ECDSA_sign(0, dgst, dgstlen, pp, &buf_len, eckey);

{ /* error */ } Third step: verify the created ECDSA signature using

EEEECCCCDDDDSSSSAAAA_ddddoooo_vvvveeeerrrriiiiffffyyyy

ret = ECDSA_do_verify(digest, 20, sig, eckey);

or using EEEECCCCDDDDSSSSAAAA_vvvveeeerrrriiiiffffyyyy

ret = ECDSA_verify(0, digest, 20, buffer, buf_len, eckey);

and finally evaluate the return value:

if (ret == -1)

{ /* error */ } else if (ret == 0) { /* incorrect signature */ } else /* ret == 1 */ { /* signature ok */ } CCCCOOOONNNNFFFFOOOORRRRMMMMIIIINNNNGGGG TTTTOOOO ANSI X9.62, US Federal Information Processing Standard FIPS

186-2 (Digital Signature Standard, DSS)

SSSSEEEEEEEE AAAALLLLSSSSOOOO dsa(3), rsa(3) HHHHIIIISSSSTTTTOOOORRRRYYYY

The ecdsa implementation was first introduced in OpenSSL

0.9.8 AAAAUUUUTTTTHHHHOOOORRRR Nils Larsch for the OpenSSL project (http://www.openssl.org).

19/May/2005 Last change: 0.9.8o 4

OpenSSL ecdsa(3openssl)

19/May/2005 Last change: 0.9.8o 5




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™