/fixed

RSA, ECDSA, EdDSA for C, Common Lisp.

Primary LanguageCThe UnlicenseUnlicense

RSA, ECDSA, EdDSA for C, Common Lisp.

1. Compile

FreeBSD, Linux

Debug mode.

$ cc *.c
$ ./a.out

Release mode.

$ cc -DFIXED_RELEASE *.c
$ ./a.out

Example

*** RSA
...................
make_prime: 18
..
make_prime: 1
e: 10001
d: 3F354A5250AB5FD3211A092A7BA99DD5A899129770923AA1231C39BBC3D0B619
n: C74AA109F6A9210FF2C3298F7DCBF24D779ECFF5209C33502D669DFBBED5BA55
p: F01344BFA53EACEF046C53F94E5AD80F
q: D482CF3621F493F5A50E86B3EB11435B
x1: 10
x2: 20
x3: 30
x4: 40
x5: 50
x1.encode: 6C95575B88AE67A7E55AEEFE70DF6F2E58EBF92DAEBA871E66C292C62C7B9659
x2.encode: 85B7ED79136CC1A96F7CC0E1E0F1467A1118926179FF3562C925E3EEF5442FC3
x3.encode: 70FB99A94A08B31FC481963D3CDD7DC9A67CF20E7CABEBD3C34479DF7DEBD733
x4.encode: 606DF4AE9D2FB2E0294FB477063BD344B35267EE805B83B4EE3155DDC72182CF
x5.encode: 46C5549E3A90661B4F075E7B26577CFD7E3718F342ACC6EA5F6866C899F818CD
x1.decode: 10
x2.decode: 20
x3.decode: 30
x4.decode: 40
x5.decode: 50


*** ECDSA, EdDSA
[private]
secp256k1: "B0C79E3C6F9843F2DD21F6A045215F94665D51302E59241F7CFAA84179372325"
secp256r1: "E4E87F8B4964F2B23F6F5A60A61163ED1AEDD2DA67A752FEE8597E6FD8F51282"
ed25519  : "8B8C0EFA268614E5DC1D7BC12A966C05798DCFF0D61F32C19A975AA7852BD789"
ed448    : "D03CBAF7196BB133A0088B61A823E0FED6623A28C430086824D97B43DDD0A447AE7BAFF8507D174E928263E2A9CA4B29DB0575557E5658E633"

[public]
secp256k1: "039CFE003BFD2C9468FA0FD7595D176159CC760EBE93553417896C80A9B37514C0"
secp256r1: "037D26ED96BCA1CA0FC0C20DD6800F31C4BA1A75C41A28EE0E40AA802B972F1EBE"
ed25519  : "BCC4FA93DFA07B13666B5A76D738298E8B5E9FB980B9EB405DF53345078037F1"
ed448    : "724CA6917D69B0CB9493F0D64DF0FDC9E922682708BBE293EDC9038B804ADF4754CA34B582D5D83F317676F055F195B29B84F980730F792E00"

[sign] "Hello"
secp256k1.r: "7AA73E67ADD85A69E38BBFCA9E558AAB589CE2EE1172D33D7EAF064C15F17FDA"
secp256k1.s: "2F9F7CDFE11DA84A9D19E5B8B3E3B169097F699F17A528BFE147D86715E19316"
secp256r1.r: "63A0A7FC755FEB10D4FD0449D62DEA9CBBE43AB666DE96DD5D0E98FB6FF0FE63"
secp256r1.s: "96EE74FF35817BAAD248814616726DA1F71F0E5F5CD4C9F79C6A0FDD8B255B1B"
ed25519.r  : "218043205EB0A026AF6751DCA5438E12F6C4F3531504D05C3B6EC97534AF75BE"
ed25519.s  : "3D93195D9E6F03295197CB7EEAA24BF478F6B417680B7EEC0BBD61727FE6E305"
ed448.r    : "09B80DD20A44F0F30307676A0A1DC054F2FAAFF0505775D6FE447121A93BF35138ED97B09DDEE5EB9819EE4DC3E75473760FC33825E1F3A780"
ed448.s    : "C9908DC1C007053825EE4FFFB4AED190BFFF7DC1BFFB04E323E5DE57413B7FA8B1083F6E329210C779529C8F52E0CEC86A5972AC05B9992E00"

[verify]
secp256k1: T
secp256r1: T
ed25519  : T
ed448    : T

2. License

The Unlicense

3. Distribution

https://github.com/nptcl/fixed