Improvements to ecc-params example.
parent
1f2dc5ef5e
commit
6d0241b4c4
|
@ -14,6 +14,7 @@
|
|||
make
|
||||
gcc -o ecc-key-decode ecc-key-decode.c -Wall -I/usr/local/include -Os -L/usr/local/lib -lm -lwolfssl
|
||||
gcc -o ecc-key-decode ecc-key-decode.c -Wall -I/usr/local/include -Os -L/usr/local/lib -lm -lwolfssl
|
||||
gcc -o ecc-params ecc-params.c -Wall -I/usr/local/include -Os -L/usr/local/lib -lm -lwolfssl
|
||||
gcc -o ecc-sign ecc-sign.c -Wall -I/usr/local/include -Os -L/usr/local/lib -lm -lwolfssl
|
||||
gcc -o ecc-stack ecc-stack.c -Wall -I/usr/local/include -Os -L/usr/local/lib -lm -lwolfssl
|
||||
gcc -o ecc-verify ecc-verify.c -Wall -I/usr/local/include -Os -L/usr/local/lib -lm -lwolfssl
|
||||
|
@ -141,6 +142,32 @@ openssl ec -inform der -in ECC_SECP256K1_pub.der -text -pubin
|
|||
openssl ec -inform pem -in ECC_SECP256K1_pub.pem -text -pubin
|
||||
```
|
||||
|
||||
### `ecc-params`
|
||||
|
||||
Example for extracting curve parameters for a specific ECC curve.
|
||||
|
||||
```
|
||||
./ecc-params
|
||||
ECC Curve Parameters for SECP256R1
|
||||
Prime: 32
|
||||
ff ff ff ff 00 00 00 01 00 00 00 00 00 00 00 00 |................
|
||||
00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff |................
|
||||
Af: 32
|
||||
ff ff ff ff 00 00 00 01 00 00 00 00 00 00 00 00 |................
|
||||
00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff fc |................
|
||||
Bf: 32
|
||||
5a c6 35 d8 aa 3a 93 e7 b3 eb bd 55 76 98 86 bc |Z.5..:.....Uv...
|
||||
65 1d 06 b0 cc 53 b0 f6 3b ce 3c 3e 27 d2 60 4b |e....S..;.<>'.`K
|
||||
Order: 32
|
||||
ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff |................
|
||||
bc e6 fa ad a7 17 9e 84 f3 b9 ca c2 fc 63 25 51 |.............c%Q
|
||||
Gx: 32
|
||||
6b 17 d1 f2 e1 2c 42 47 f8 bc e6 e5 63 a4 40 f2 |k....,BG....c.@.
|
||||
77 03 7d 81 2d eb 33 a0 f4 a1 39 45 d8 98 c2 96 |w.}.-.3...9E....
|
||||
Gy: 32
|
||||
4f e3 42 e2 fe 1a 7f 9b 8e e7 eb 4a 7c 0f 9e 16 |O.B........J|...
|
||||
2b ce 33 57 6b 31 5e ce cb b6 40 68 37 bf 51 f5 |+.3Wk1^...@h7.Q.
|
||||
```
|
||||
|
||||
## Support
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <wolfssl/wolfcrypt/integer.h>
|
||||
#include <wolfssl/wolfcrypt/ecc.h>
|
||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||
#include <wolfssl/wolfcrypt/logging.h>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
|
@ -32,7 +33,7 @@
|
|||
|
||||
/*
|
||||
STATIC:
|
||||
./configure --disable-shared CFLAGS="-DWOLFSSL_PUBLIC_MP" && make && sudo make install
|
||||
./configure --enable-debug --disable-shared CFLAGS="-DWOLFSSL_PUBLIC_MP" && make && sudo make install
|
||||
gcc -o ecc-params -I/usr/local/include ecc-params.c /usr/local/lib/libwolfssl.a
|
||||
./ecc_params
|
||||
*/
|
||||
|
@ -115,14 +116,39 @@ int main(void)
|
|||
{
|
||||
int ret = 0;
|
||||
#if defined(HAVE_ECC) && defined(WOLFSSL_PUBLIC_MP)
|
||||
const char* curve_str = "SECP256R1";
|
||||
int curve_id = ECC_SECP256R1;
|
||||
unsigned char aF[32];
|
||||
unsigned char param[MAX_ECC_BYTES];
|
||||
|
||||
ret = load_curve_param(curve_id, ECC_CURVE_FIELD_AF, aF, sizeof(aF));
|
||||
wolfSSL_Debugging_ON();
|
||||
|
||||
printf("ECC Curve Parameters for %s\n", curve_str);
|
||||
|
||||
ret = load_curve_param(curve_id, ECC_CURVE_FIELD_PRIME, param, sizeof(param));
|
||||
printf("Prime: %d\n", ret);
|
||||
WOLFSSL_BUFFER(param, ret);
|
||||
|
||||
ret = load_curve_param(curve_id, ECC_CURVE_FIELD_AF, param, sizeof(param));
|
||||
printf("Af: %d\n", ret);
|
||||
WOLFSSL_BUFFER(param, ret);
|
||||
|
||||
ret = load_curve_param(curve_id, ECC_CURVE_FIELD_BF, param, sizeof(param));
|
||||
printf("Bf: %d\n", ret);
|
||||
WOLFSSL_BUFFER(param, ret);
|
||||
|
||||
ret = load_curve_param(curve_id, ECC_CURVE_FIELD_ORDER, param, sizeof(param));
|
||||
printf("Order: %d\n", ret);
|
||||
WOLFSSL_BUFFER(param, ret);
|
||||
|
||||
ret = load_curve_param(curve_id, ECC_CURVE_FIELD_GX, param, sizeof(param));
|
||||
printf("Gx: %d\n", ret);
|
||||
WOLFSSL_BUFFER(param, ret);
|
||||
|
||||
ret = load_curve_param(curve_id, ECC_CURVE_FIELD_GY, param, sizeof(param));
|
||||
printf("Gy: %d\n", ret);
|
||||
WOLFSSL_BUFFER(param, ret);
|
||||
#else
|
||||
printf("Must build wolfSSL with ./configure --disable-shared CFLAGS=\"-DWOLFSSL_PUBLIC_MP\"\n");
|
||||
printf("Must build wolfSSL with ./configure CFLAGS=\"-DWOLFSSL_PUBLIC_MP\"\n");
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue