update master-with-bazel from master branch
This commit is contained in:
@@ -762,8 +762,7 @@ TEST(EVPExtraTest, Print) {
|
||||
61
|
||||
)");
|
||||
|
||||
// TODO(davidben): This output is a little off. |BIO_hexdump| does not really
|
||||
// fit for printing the public key, and we've lost the curve name.
|
||||
// TODO(davidben): This output should include the curve name.
|
||||
bssl::UniquePtr<EVP_PKEY> ec =
|
||||
ParsePrivateKey(EVP_PKEY_EC, kExampleECKeyDER, sizeof(kExampleECKeyDER));
|
||||
ASSERT_TRUE(ec);
|
||||
@@ -771,11 +770,12 @@ TEST(EVPExtraTest, Print) {
|
||||
" ECDSA-Parameters: (256 bit)\n");
|
||||
EXPECT_EQ(PrintToString(ec.get(), /*indent=*/2, &EVP_PKEY_print_public),
|
||||
R"( Public-Key: (256 bit)
|
||||
00000000 04 e6 2b 69 e2 bf 65 9f 97 be 2f 1e 0d 94 8a 4c |..+i..e.../....L|
|
||||
00000010 d5 97 6b b7 a9 1e 0d 46 fb dd a9 a9 1e 9d dc ba |..k....F........|
|
||||
00000020 5a 01 e7 d6 97 a8 0a 18 f9 c3 c4 a3 1e 56 e2 7c |Z............V.||
|
||||
00000030 83 48 db 16 1a 1c f5 1d 7e f1 94 2d 4b cf 72 22 |.H......~..-K.r"|
|
||||
00000040 c1 |.|
|
||||
pub:
|
||||
04:e6:2b:69:e2:bf:65:9f:97:be:2f:1e:0d:94:8a:
|
||||
4c:d5:97:6b:b7:a9:1e:0d:46:fb:dd:a9:a9:1e:9d:
|
||||
dc:ba:5a:01:e7:d6:97:a8:0a:18:f9:c3:c4:a3:1e:
|
||||
56:e2:7c:83:48:db:16:1a:1c:f5:1d:7e:f1:94:2d:
|
||||
4b:cf:72:22:c1
|
||||
)");
|
||||
EXPECT_EQ(PrintToString(ec.get(), /*indent=*/2, &EVP_PKEY_print_private),
|
||||
R"( Private-Key: (256 bit)
|
||||
@@ -783,11 +783,12 @@ TEST(EVPExtraTest, Print) {
|
||||
07:0f:08:72:7a:d4:a0:4a:9c:dd:59:c9:4d:89:68:
|
||||
77:08:b5:6f:c9:5d:30:77:0e:e8:d1:c9:ce:0a:8b:
|
||||
b4:6a
|
||||
00000000 04 e6 2b 69 e2 bf 65 9f 97 be 2f 1e 0d 94 8a 4c |..+i..e.../....L|
|
||||
00000010 d5 97 6b b7 a9 1e 0d 46 fb dd a9 a9 1e 9d dc ba |..k....F........|
|
||||
00000020 5a 01 e7 d6 97 a8 0a 18 f9 c3 c4 a3 1e 56 e2 7c |Z............V.||
|
||||
00000030 83 48 db 16 1a 1c f5 1d 7e f1 94 2d 4b cf 72 22 |.H......~..-K.r"|
|
||||
00000040 c1 |.|
|
||||
pub:
|
||||
04:e6:2b:69:e2:bf:65:9f:97:be:2f:1e:0d:94:8a:
|
||||
4c:d5:97:6b:b7:a9:1e:0d:46:fb:dd:a9:a9:1e:9d:
|
||||
dc:ba:5a:01:e7:d6:97:a8:0a:18:f9:c3:c4:a3:1e:
|
||||
56:e2:7c:83:48:db:16:1a:1c:f5:1d:7e:f1:94:2d:
|
||||
4b:cf:72:22:c1
|
||||
)");
|
||||
}
|
||||
|
||||
|
||||
+26
-24
@@ -64,6 +64,24 @@
|
||||
#include "../fipsmodule/rsa/internal.h"
|
||||
|
||||
|
||||
static int print_hex(BIO *bp, const uint8_t *data, size_t len, int off) {
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
if ((i % 15) == 0) {
|
||||
if (BIO_puts(bp, "\n") <= 0 || //
|
||||
!BIO_indent(bp, off + 4, 128)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (BIO_printf(bp, "%02x%s", data[i], (i + 1 == len) ? "" : ":") <= 0) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (BIO_write(bp, "\n", 1) <= 0) {
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int bn_print(BIO *bp, const char *name, const BIGNUM *num, int off) {
|
||||
if (num == NULL) {
|
||||
return 1;
|
||||
@@ -105,32 +123,14 @@ static int bn_print(BIO *bp, const char *name, const BIGNUM *num, int off) {
|
||||
|
||||
buf[0] = 0;
|
||||
BN_bn2bin(num, buf + 1);
|
||||
const uint8_t *data = buf;
|
||||
int ret;
|
||||
if (len > 0 && (buf[1] & 0x80) != 0) {
|
||||
len++; // Print the whole buffer.
|
||||
// Print the whole buffer.
|
||||
ret = print_hex(bp, buf, len + 1, off);
|
||||
} else {
|
||||
data = buf + 1; // Skip the leading zero.
|
||||
// Skip the leading zero.
|
||||
ret = print_hex(bp, buf + 1, len, off);
|
||||
}
|
||||
|
||||
int ret = 0;
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
if ((i % 15) == 0) {
|
||||
if (BIO_puts(bp, "\n") <= 0 || //
|
||||
!BIO_indent(bp, off + 4, 128)) {
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
if (BIO_printf(bp, "%02x%s", data[i], (i + 1 == len) ? "" : ":") <= 0) {
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
if (BIO_write(bp, "\n", 1) <= 0) {
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
OPENSSL_free(buf);
|
||||
return ret;
|
||||
}
|
||||
@@ -278,7 +278,9 @@ static int do_EC_KEY_print(BIO *bp, const EC_KEY *x, int off, int ktype) {
|
||||
if (pub_len == 0) {
|
||||
return 0;
|
||||
}
|
||||
int ret = BIO_hexdump(bp, pub, pub_len, off);
|
||||
int ret = BIO_indent(bp, off, 128) && //
|
||||
BIO_puts(bp, "pub:") > 0 && //
|
||||
print_hex(bp, pub, pub_len, off);
|
||||
OPENSSL_free(pub);
|
||||
if (!ret) {
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user