35
35
#include " ../test/wycheproof_util.h"
36
36
37
37
38
- static bssl::UniquePtr< EC_GROUP> GetCurve (FileTest *t, const char *key) {
38
+ static const EC_GROUP * GetCurve (FileTest *t, const char *key) {
39
39
std::string curve_name;
40
40
if (!t->GetAttribute (&curve_name, key)) {
41
41
return nullptr ;
42
42
}
43
43
44
44
if (curve_name == " P-224" ) {
45
- return bssl::UniquePtr<EC_GROUP>( EC_GROUP_new_by_curve_name (NID_secp224r1) );
45
+ return EC_group_p224 ( );
46
46
}
47
47
if (curve_name == " P-256" ) {
48
- return bssl::UniquePtr<EC_GROUP>(EC_GROUP_new_by_curve_name (
49
- NID_X9_62_prime256v1));
48
+ return EC_group_p256 ();
50
49
}
51
50
if (curve_name == " P-384" ) {
52
- return bssl::UniquePtr<EC_GROUP>( EC_GROUP_new_by_curve_name (NID_secp384r1) );
51
+ return EC_group_p384 ( );
53
52
}
54
53
if (curve_name == " P-521" ) {
55
- return bssl::UniquePtr<EC_GROUP>( EC_GROUP_new_by_curve_name (NID_secp521r1) );
54
+ return EC_group_p521 ( );
56
55
}
57
56
58
57
t->PrintLine (" Unknown curve '%s'" , curve_name.c_str ());
@@ -70,7 +69,7 @@ static bssl::UniquePtr<BIGNUM> GetBIGNUM(FileTest *t, const char *key) {
70
69
71
70
TEST (ECDHTest, TestVectors) {
72
71
FileTestGTest (" crypto/ecdh_extra/ecdh_tests.txt" , [](FileTest *t) {
73
- bssl::UniquePtr< EC_GROUP> group = GetCurve (t, " Curve" );
72
+ const EC_GROUP * group = GetCurve (t, " Curve" );
74
73
ASSERT_TRUE (group);
75
74
bssl::UniquePtr<BIGNUM> priv_key = GetBIGNUM (t, " Private" );
76
75
ASSERT_TRUE (priv_key);
@@ -87,16 +86,16 @@ TEST(ECDHTest, TestVectors) {
87
86
88
87
bssl::UniquePtr<EC_KEY> key (EC_KEY_new ());
89
88
ASSERT_TRUE (key);
90
- bssl::UniquePtr<EC_POINT> pub_key (EC_POINT_new (group. get () ));
89
+ bssl::UniquePtr<EC_POINT> pub_key (EC_POINT_new (group));
91
90
ASSERT_TRUE (pub_key);
92
- bssl::UniquePtr<EC_POINT> peer_pub_key (EC_POINT_new (group. get () ));
91
+ bssl::UniquePtr<EC_POINT> peer_pub_key (EC_POINT_new (group));
93
92
ASSERT_TRUE (peer_pub_key);
94
- ASSERT_TRUE (EC_KEY_set_group (key.get (), group. get () ));
93
+ ASSERT_TRUE (EC_KEY_set_group (key.get (), group));
95
94
ASSERT_TRUE (EC_KEY_set_private_key (key.get (), priv_key.get ()));
96
- ASSERT_TRUE (EC_POINT_set_affine_coordinates_GFp (group. get () , pub_key.get (),
95
+ ASSERT_TRUE (EC_POINT_set_affine_coordinates_GFp (group, pub_key.get (),
97
96
x.get (), y.get (), nullptr ));
98
97
ASSERT_TRUE (EC_POINT_set_affine_coordinates_GFp (
99
- group. get () , peer_pub_key.get (), peer_x.get (), peer_y.get (), nullptr ));
98
+ group, peer_pub_key.get (), peer_x.get (), peer_y.get (), nullptr ));
100
99
ASSERT_TRUE (EC_KEY_set_public_key (key.get (), pub_key.get ()));
101
100
ASSERT_TRUE (EC_KEY_check_key (key.get ()));
102
101
@@ -130,7 +129,7 @@ TEST(ECDHTest, TestVectors) {
130
129
static void RunWycheproofTest (FileTest *t) {
131
130
t->IgnoreInstruction (" encoding" );
132
131
133
- bssl::UniquePtr< EC_GROUP> group = GetWycheproofCurve (t, " curve" , true );
132
+ const EC_GROUP * group = GetWycheproofCurve (t, " curve" , true );
134
133
ASSERT_TRUE (group);
135
134
bssl::UniquePtr<BIGNUM> priv_key = GetWycheproofBIGNUM (t, " private" , false );
136
135
ASSERT_TRUE (priv_key);
@@ -157,10 +156,10 @@ static void RunWycheproofTest(FileTest *t) {
157
156
158
157
bssl::UniquePtr<EC_KEY> key (EC_KEY_new ());
159
158
ASSERT_TRUE (key);
160
- ASSERT_TRUE (EC_KEY_set_group (key.get (), group. get () ));
159
+ ASSERT_TRUE (EC_KEY_set_group (key.get (), group));
161
160
ASSERT_TRUE (EC_KEY_set_private_key (key.get (), priv_key.get ()));
162
161
163
- std::vector<uint8_t > actual ((EC_GROUP_get_degree (group. get () ) + 7 ) / 8 );
162
+ std::vector<uint8_t > actual ((EC_GROUP_get_degree (group) + 7 ) / 8 );
164
163
int ret =
165
164
ECDH_compute_key (actual.data (), actual.size (),
166
165
EC_KEY_get0_public_key (peer_ec), key.get (), nullptr );
0 commit comments