úÎ=6­u      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst Excellent Experimental#Vincent Hanquez <vincent@snarc.org> Safe-Inferred*Define names for known recommended curves "/Define common parameters in a curve definition ! of the form: y^2 = x^3 + ax + b $curve parameter a %curve parameter b & base point ' order of G ( cofactor )Define an elliptic curve in Õ=p &the first parameter is a prime number +#Define an elliptic curve in Õ=(2^m) 4 The first parameter is a bitfield representing the  f(x) polynomial. -Define a point on a curve 1/Define either a binary curve or a prime curve. 2Õ=p 3Õ=(2^m) 4=Polynomial representing the characteristic of a CurveBinary. 5>Prime number representing the characteristic of a CurvePrime. 6Iget the curve definition associated with a recommended known curve name. 7  !"#$%&'()*+,-./01234567  !"#$%&'()*+,-./01234567132-./0+,)*45"#$%&'(!  6 !!  "#$%&'()*+,-./0132456 Excellent Experimental#Vincent Hanquez <vincent@snarc.org> Safe-Inferred7ECDSA Public Key ;ECDSA Private Key ?<ECDSA Private Number, usually embedded in ECDSA Private Key 789:;<=>? 789:;<=>? ?;<=>789:789:;<=>? ExcellentStable#Vincent Hanquez <vincent@snarc.org>None@(Represent Diffie Hellman shared secret. B+Represent Diffie Hellman private number X. D*Represent Diffie Hellman public number Y. FIRepresent Diffie Hellman parameters namely P (prime), and G (generator). @ABCDEFGHIu @ABCDEFGHI FGHIDEBC@A@ABCDEFGHIu ExcellentStable#Vincent Hanquez <vincent@snarc.org>NoneJRepresent a DSA key pair LRepresent a DSA private key. Only x need to be secret. = the DSA parameters are publicly shared with the other side. NDSA parameters ODSA private X PRepresent a DSA public key. RDSA parameters S DSA public Y T*Represent a DSA signature namely R and S. VDSA r WDSA s X-Represent DSA parameters namely P, G, and Q. ZDSA p [DSA g \DSA q ]8DSA Private Number, usually embedded in DSA Private Key ^6DSA Public Number, usually embedded in DSA Public Key _Public key of a DSA Key pair `Private key of a DSA Key pair JKLMNOPQRSTUVWXYZ[\]^_`vwxyJKLMNOPQRSTUVWXYZ[\]^_`XYZ[\TUVW^PQRS]LMNOJK_` JKLMNOPQRSTUVWXYZ[\]^_`vwxy ExcellentStable#Vincent Hanquez <vincent@snarc.org>NoneaRepresent RSA KeyPair Snote the RSA private key contains already an instance of public key for efficiency cRepresent a RSA private key. .Only the pub, d fields are mandatory to fill. 9p, q, dP, dQ, qinv are by-product during RSA generation, 5 but are useful to record here to speed up massively ! the decrypt and sign operation. 0implementations can leave optional fields to 0. e-public part of a private key (size, n and e) fprivate exponant d gp prime number hq prime number i d mod (p-1) j d mod (q-1) k q^(-1) mod p lRepresent a RSA public key nsize of key in bytes o public p*q ppublic exponant e q)get the size in bytes from a private key rget n from a private key zget e from a private key sPublic key of a RSA KeyPair tPrivate key of a RSA KeyPair abcdefghijklmnopqrzst{|}abcdefghijklmnopqrstlmnopcdefghijkabqrst abcdefghijklmnopqrzst{|}~      !"#$%&'(()*+,-..//001234567899:;<<=>?@@??AABBCDEE<<=F99:GHHIJBBCDK?ALMEE<<N>OPQRS99TUVWXLMYZ[\Y]Z^[_crypto-pubkey-types-0.4.0Crypto.Types.PubKey.ECCCrypto.Types.PubKey.ECDSACrypto.Types.PubKey.DHCrypto.Types.PubKey.DSACrypto.Types.PubKey.RSA CurveName SEC_t571r1 SEC_t571k1 SEC_t409r1 SEC_t409k1 SEC_t283r1 SEC_t283k1 SEC_t239k1 SEC_t233r1 SEC_t233k1 SEC_t193r2 SEC_t193r1 SEC_t163r2 SEC_t163r1 SEC_t163k1 SEC_t131r2 SEC_t131r1 SEC_t113r2 SEC_t113r1 SEC_p521r1 SEC_p384r1 SEC_p256r1 SEC_p256k1 SEC_p224r1 SEC_p224k1 SEC_p192r1 SEC_p192k1 SEC_p160r2 SEC_p160r1 SEC_p160k1 SEC_p128r2 SEC_p128r1 SEC_p112r2 SEC_p112r1 CurveCommonecc_aecc_becc_gecc_necc_h CurvePrime CurveBinaryPointpoint_xpoint_yCurveCurveFPCurveF2Mecc_fxecc_pgetCurveByName PublicKey public_paramspublic_q PrivateKeyprivate_params private_d PrivateNumber SharedKey PublicNumberParamsparams_pparams_gKeyPair private_xpublic_y Signaturesign_rsign_sparams_q toPublicKey toPrivateKey private_pub private_p private_q private_dP private_dQ private_qinv public_sizepublic_npublic_e private_size private_n$fASN1ObjectParams$fASN1ObjectKeyPair$fASN1ObjectPublicKey$fASN1ObjectSignature private_e$fASN1ObjectPrivateKey