Thanks for using this software, for Cofee/Beer/Amazon bill and further development of this project please Share.

*Any private key value that you enter or we generate is not stored on this site, this tool is provided via an HTTPS URL to ensure that private keys cannot be stolen, for extra security run this software on your network, no cloud dependency*

Asking for donation sound bad to me, so i'm raising fund from ** The Modern Cryptography CookBook ** for Just $9. Leanpub books Discount coupon first 100 reader. No hurry read the sample chapters here then decide.

Alternatively to support you can buy all My four Cryptography book Just $10.99 Limited Offer from https://leanpub.com/b/cryptob

- The Modern Cryptography Book.
- Go lang Cryptography for developers
- Python Cryptography
- Cryptography for JavaScript Developer

**Elliptic Curve Digital Signature Algorithm** or **ECDSA** is a cryptographic algorithm used by Bitcoin to ensure that funds can only be spent by their rightful owners.

This tool is capable of generating key the the curve

```
"c2pnb272w1", "c2tnb359v1", "prime256v1", "c2pnb304w1", "c2pnb368w1", "c2tnb431r1",
"sect283r1", "sect283k1", "secp256r1", "sect571r1", "sect571k1", "sect409r1", "sect409k1",
"secp521r1", "secp384r1", "P-521", "P-256", "P-384", "B-409", "B-283", "B-571", "K-409", "K-283",
"K-571", "brainpoolp512r1", "brainpoolp384t1", "brainpoolp256r1", "brainpoolp512t1", "brainpoolp256t1",
"brainpoolp320r1", "brainpoolp384r1", "brainpoolp320t1", "FRP256v1", "sm2p256v1"
```

**secp256k1** refers to the parameters of the elliptic curve used in Bitcoinâ€™s public-key cryptography, and is defined in *Standards for Efficient Cryptography (SEC)*

A few concepts related to ECDSA:

**private key**: A secret number, known only to the person that generated it. A private key is essentially a randomly generated number. In Bitcoin, a private key is a single unsigned 256 bit integer (32 bytes).**public key**: A number that corresponds to a private key, but does not need to be kept secret. A public key can be calculated from a private key, but not vice versa. A public key can be used to determine if a signature is genuine (in other words, produced with the proper key) without requiring the private key to be divulged.**signature**: A number that proves that a signing operation took place.

**Openssl Generating EC Keys and Parameters**

```
$ openssl ecparam -list_curves
secp256k1 : SECG curve over a 256 bit prime field
secp384r1 : NIST/SECG curve over a 384 bit prime field
secp521r1 : NIST/SECG curve over a 521 bit prime field
prime256v1: X9.62/SECG curve over a 256 bit prime field
```

**An EC parameters file can then be generated for any of the built-in named curves as follows:**

```
$ openssl ecparam -name secp256k1 -out secp256k1.pem
$ cat secp256k1.pem
-----BEGIN EC PARAMETERS-----
BgUrgQQACg==
-----END EC PARAMETERS-----
```

**To generate a private/public key pair from a pre-eixsting parameters file use the following:**

```
$ openssl ecparam -in secp256k1.pem -genkey -noout -out secp256k1-key.pem
$ cat secp256k1-key.pem
-----BEGIN EC PRIVATE KEY-----
MHQCAQEEIKRPdj7XMkxO8nehl7iYF9WAnr2Jdvo4OFqceqoBjc8/oAcGBSuBBAAK
oUQDQgAE7qXaOiK9jgWezLxemv+lxQ/9/Q68pYCox/y1vD1fhvosggCxIkiNOZrD
kHqms0N+huh92A/vfI5FyDZx0+cHww==
-----END EC PRIVATE KEY-----
```

**Examine the specific details of the parameters associated with a particular named curve**

```
$ openssl ecparam -in secp256k1.pem -text -param_enc explicit -noout
Field Type: prime-field
Prime:
00:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:fe:ff:
ff:fc:2f
A: 0
B: 7 (0x7)
Generator (uncompressed):
04:79:be:66:7e:f9:dc:bb:ac:55:a0:62:95:ce:87:
0b:07:02:9b:fc:db:2d:ce:28:d9:59:f2:81:5b:16:
f8:17:98:48:3a:da:77:26:a3:c4:65:5d:a4:fb:fc:
0e:11:08:a8:fd:17:b4:48:a6:85:54:19:9c:47:d0:
8f:fb:10:d4:b8
Order:
00:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
ff:fe:ba:ae:dc:e6:af:48:a0:3b:bf:d2:5e:8c:d0:
36:41:41
Cofactor: 1 (0x1)
```

- Nacl xsalsa20 Encryption & Decryption
- Nacl AEAD Encryption & Decryption
- Nacl Box Encryption & Decryption
- Nacl SealBox Encryption & Decryption
- Generate Message Digest
- Generate HMAC
- Encryption/Decryption
- RSA Encryption/Decryption
- RSA Signature/Verification
- Lattice Cryptography Encryption
- DSA Keygen,Sign File,Verify Sig
- Elliptic Curve Encryption/Decryption
- Elliptic Curve Sign/Verify Message
- ELGAMAL Encryption/Decryption
- PBKDF2 Derivekey
- PBE (PBKDF) Encryption/Decryption
- PGP Encryption/Decryption
- PGP Key Generation
- PGP Signature Verifier
- BCrypt Password Hash
- SCrypt Password Hash
- Diffie-Hellman Key Exchange
- PEMReader Decode Certificate
- Encrypted PEM password finder
- Strong Random Passwd Generator
- Generate Self Sign Certificate
- Generate rootCA/InterCA/Certs
- Verify private key against csr,x509
- OCSP Query
- Sign CSR
- SSH-Keygen
- Easy Keystore/trustore viewer
- SAML Sign Message
- SAML Verify Sign / Others
- JSON Web Key (JWK) Generate
- JSON Web Key (JWK) to PEM Convert