diff --git a/src/update-makefiles.pl b/src/update-makefiles.pl index 374d2f8..96129d8 100755 --- a/src/update-makefiles.pl +++ b/src/update-makefiles.pl @@ -13,7 +13,8 @@ system 'rm', '-rf', "$FindBin::Bin/ltc/modes/xts/"; system 'rm', '-rf', "$FindBin::Bin/ltc/pk/katja/"; system 'rm', '-rf', "$FindBin::Bin/ltc/math/gmp_desc.c"; -find({ wanted=>sub { unlink $_ if $_ =~ /test\.c$/ && $_ !~ /sha3_test.c$/ }, no_chdir=>1 }, "$FindBin::Bin/ltc"); +find({ wanted=>sub { unlink $_ if -f $_ && $_ =~ /test\.c$/ && $_ !~ /sha3_test.c$/ }, no_chdir=>1 }, "$FindBin::Bin/ltc"); +find({ wanted=>sub { unlink $_ if -f $_ && $_ =~ /\.o$/ }, no_chdir=>1 }, "$FindBin::Bin/ltm", "$FindBin::Bin/ltc"); #fix modes warn "gonna chmod..\n"; diff --git a/t/jwk.t b/t/jwk.t index 11e4c36..1438520 100644 --- a/t/jwk.t +++ b/t/jwk.t @@ -147,7 +147,7 @@ curve_cofactor => 1, curve_Gx => "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296", curve_Gy => "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5", - curve_name => "secp256r1", + curve_oid => "1.2.840.10045.3.1.7", curve_order => "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551", curve_prime => "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF", k => "F3BD0C07A81FB932781ED52752F60CC89A6BE5E51934FE01938DDB55D8F77801", @@ -167,7 +167,7 @@ curve_cofactor => 1, curve_Gx => "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296", curve_Gy => "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5", - curve_name => "secp256r1", + curve_oid => "1.2.840.10045.3.1.7", curve_order => "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551", curve_prime => "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF", k => "", @@ -183,7 +183,7 @@ is($kh->{pub_x}, $EC1->{pub_x}, "EC x test HASH1"); is($kh->{pub_y}, $EC1->{pub_y}, "EC y test HASH1"); is($kh->{k}, $EC1->{k}, "EC k test HASH1"); - is($kh->{curve_name}, "secp256r1", "EC curve test HASH1"); + is($kh->{curve_oid}, "1.2.840.10045.3.1.7", "EC curve test HASH1"); ok($ec->is_private, "EC private test HASH1"); my $jwk = $ec->export_key_jwk('private'); my $jwkp = $ec->export_key_jwk('public'); @@ -205,7 +205,7 @@ is($kh->{pub_x}, $EC1->{pub_x}, "EC x test JWK1"); is($kh->{pub_y}, $EC1->{pub_y}, "EC y test JWK1"); is($kh->{k}, $EC1->{k}, "EC k test JWK1"); - is($kh->{curve_name}, "secp256r1", "EC curve test JWK1"); + is($kh->{curve_oid}, "1.2.840.10045.3.1.7", "EC curve test JWK1"); ok($ec->is_private, "EC private test JWK1"); $jwk_tp = $ec->export_key_jwk_thumbprint('SHA256'); is($jwk_tp, $ec1_jwk_thumbprint_sha256, 'export_key_jwk_thumbprint(SHA256)'); @@ -215,7 +215,7 @@ is($kh->{pub_x}, $EC1->{pub_x}, "EC x test JWK2"); is($kh->{pub_y}, $EC1->{pub_y}, "EC y test JWK2"); is($kh->{k}, "", "EC k test JWK2"); - is($kh->{curve_name}, "secp256r1", "EC curve test JWK2"); + is($kh->{curve_oid}, "1.2.840.10045.3.1.7", "EC curve test JWK2"); ok(!$ec->is_private, "EC !private test JWK2"); $jwk_tp = $ec->export_key_jwk_thumbprint('SHA256'); is($jwk_tp, $ec1_jwk_thumbprint_sha256, 'export_key_jwk_thumbprint(SHA256)'); @@ -227,7 +227,7 @@ is($kh->{pub_x}, $EC1->{pub_x}, "EC x test HASH2"); is($kh->{pub_y}, $EC1->{pub_y}, "EC y test HASH2"); is($kh->{k}, "", "EC k test HASH2"); - is($kh->{curve_name}, "secp256r1", "EC curve test HASH2"); + is($kh->{curve_oid}, "1.2.840.10045.3.1.7", "EC curve test HASH2"); ok(!$ec->is_private, "EC private test HASH2"); } diff --git a/t/pk_ecc.t b/t/pk_ecc.t index e247f5c..7d7b9fc 100644 --- a/t/pk_ecc.t +++ b/t/pk_ecc.t @@ -179,16 +179,24 @@ ok($@, 'key not generated'); # known curves lookup - my $params = $Crypt::PK::ECC::curve{secp384r1}; + my $params = { # NIST P-384 + prime => "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF", + A => "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC", + B => "B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF", + Gx => "AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7", + Gy => "3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F", + order => "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973", + cofactor => 1, + }; $k = Crypt::PK::ECC->new; ok($k->generate_key($params), "generate_key hash params"); is($k->key2hash->{curve_name}, 'secp384r1', "key2hash curve_name"); - is($k->key2hash->{curve_oid}, $params->{oid}, "key2hash curve_oid"); + is($k->key2hash->{curve_oid}, '1.3.132.0.34', "key2hash curve_oid"); ok($k->export_key_der('private_short'), "export_key_der auto oid"); $k = Crypt::PK::ECC->new; - ok($k->generate_key({ %$params, A => '0' }), "generate_key invalid auto oid"); - is($k->key2hash->{curve_name}, 'custom', "key2hash custom curve_name"); + ok($k->generate_key({ %$params, cofactor => 6 }), "generate_key invalid auto oid"); + ok(!exists($k->key2hash->{curve_name}) || $k->key2hash->{curve_name} eq 'custom', "key2hash custom curve_name"); ok(!exists($k->key2hash->{curve_oid}), "key2hash curve_oid doesn't exist"); eval { $k->export_key_der('private_short'); }; ok($@, "export_key_der invalid auto oid");