Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/boringssl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Benjamin <davidben@chromium.org>2015-06-12 08:27:46 +0300
committerAdam Langley <agl@google.com>2015-07-07 05:29:14 +0300
commit183eba4dc9f276e7a357ab704e5ee65492e71827 (patch)
tree883393e9413e3d69ded04e928103ed0bceed4588 /crypto/ecdsa
parent87897a8cea4526ddb8dd56fd1b3bbd1364fb74ce (diff)
Convert ecdsa_test to the new ECDSA_SIG API.
BUG=499653 Change-Id: Idc50c79ad597f74226ae41f9c0839ac96a8950ae Reviewed-on: https://boringssl-review.googlesource.com/5270 Reviewed-by: Adam Langley <agl@google.com>
Diffstat (limited to 'crypto/ecdsa')
-rw-r--r--crypto/ecdsa/ecdsa_test.cc38
1 files changed, 14 insertions, 24 deletions
diff --git a/crypto/ecdsa/ecdsa_test.cc b/crypto/ecdsa/ecdsa_test.cc
index 615741ff..b916509c 100644
--- a/crypto/ecdsa/ecdsa_test.cc
+++ b/crypto/ecdsa/ecdsa_test.cc
@@ -78,18 +78,13 @@ static bool VerifyECDSASig(Api api, const uint8_t *digest,
switch (api) {
case kEncodedApi: {
- int sig_len = i2d_ECDSA_SIG(ecdsa_sig, NULL);
- if (sig_len <= 0) {
+ uint8_t *der;
+ size_t der_len;
+ if (!ECDSA_SIG_to_bytes(&der, &der_len, ecdsa_sig)) {
return false;
}
- std::vector<uint8_t> signature(static_cast<size_t>(sig_len));
- uint8_t *sig_ptr = bssl::vector_data(&signature);
- sig_len = i2d_ECDSA_SIG(ecdsa_sig, &sig_ptr);
- if (sig_len <= 0) {
- return false;
- }
- actual_result = ECDSA_verify(0, digest, digest_len, bssl::vector_data(&signature),
- signature.size(), eckey);
+ ScopedOpenSSLBytes delete_der(der);
+ actual_result = ECDSA_verify(0, digest, digest_len, der, der_len, eckey);
break;
}
@@ -267,8 +262,8 @@ static bool TestBuiltin(FILE *out) {
fprintf(out, ".");
fflush(out);
// Verify a tampered signature.
- const uint8_t *sig_ptr = bssl::vector_data(&signature);
- ScopedECDSA_SIG ecdsa_sig(d2i_ECDSA_SIG(NULL, &sig_ptr, signature.size()));
+ ScopedECDSA_SIG ecdsa_sig(ECDSA_SIG_from_bytes(
+ bssl::vector_data(&signature), signature.size()));
if (!ecdsa_sig ||
!TestTamperedSig(out, kEncodedApi, digest, 20, ecdsa_sig.get(),
eckey.get(), order.get())) {
@@ -337,23 +332,18 @@ static bool TestECDSA_SIG_max_len(size_t order_len) {
return false;
}
/* Serialize it. */
- int len = i2d_ECDSA_SIG(sig.get(), nullptr);
- if (len < 0) {
- return false;
- }
- std::vector<uint8_t> der(len);
- uint8_t *ptr = bssl::vector_data(&der);
- len = i2d_ECDSA_SIG(sig.get(), &ptr);
- if (len < 0) {
+ uint8_t *der;
+ size_t der_len;
+ if (!ECDSA_SIG_to_bytes(&der, &der_len, sig.get())) {
return false;
}
- der.resize(len);
+ ScopedOpenSSLBytes delete_der(der);
size_t max_len = ECDSA_SIG_max_len(order_len);
- if (max_len != static_cast<size_t>(len)) {
- fprintf(stderr, "ECDSA_SIG_max_len(%u) returned %u, wanted %d\n",
+ if (max_len != der_len) {
+ fprintf(stderr, "ECDSA_SIG_max_len(%u) returned %u, wanted %u\n",
static_cast<unsigned>(order_len), static_cast<unsigned>(max_len),
- len);
+ static_cast<unsigned>(der_len));
return false;
}
return true;