mirror of https://github.com/openssl/openssl.git
Compare commits
17 Commits
f791c8ab04
...
c24fa3fb9d
| Author | SHA1 | Date |
|---|---|---|
|
|
c24fa3fb9d | |
|
|
39ea2b6865 | |
|
|
c280e88341 | |
|
|
54d399a128 | |
|
|
2a80bafe7c | |
|
|
037b41ff92 | |
|
|
c87e6b0eb2 | |
|
|
89a7981558 | |
|
|
2af2a4acd8 | |
|
|
fc7a05443a | |
|
|
9e437b20c3 | |
|
|
41da0a6361 | |
|
|
09ec8d6491 | |
|
|
a0aa8aeb88 | |
|
|
aa2aa570c6 | |
|
|
18f3aae39b | |
|
|
d743489b80 |
|
|
@ -0,0 +1 @@
|
|||
/.github/workflows/ @quarckster
|
||||
|
|
@ -114,7 +114,7 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: config
|
||||
uses: cross-platform-actions/action@v0.26.0
|
||||
uses: cross-platform-actions/action@fe0167d8082ac584754ef3ffb567fded22642c7d #v0.27.0
|
||||
with:
|
||||
operating_system: freebsd
|
||||
version: "13.4"
|
||||
|
|
@ -123,21 +123,21 @@ jobs:
|
|||
sudo pkg install -y gcc perl5
|
||||
./config enable-fips enable-ec_nistp_64_gcc_128 enable-md2 enable-rc5 enable-ssl3 enable-ssl3-method enable-trace
|
||||
- name: config dump
|
||||
uses: cross-platform-actions/action@v0.26.0
|
||||
uses: cross-platform-actions/action@fe0167d8082ac584754ef3ffb567fded22642c7d #v0.27.0
|
||||
with:
|
||||
operating_system: freebsd
|
||||
version: "13.4"
|
||||
shutdown_vm: false
|
||||
run: ./configdata.pm --dump
|
||||
- name: make
|
||||
uses: cross-platform-actions/action@v0.26.0
|
||||
uses: cross-platform-actions/action@fe0167d8082ac584754ef3ffb567fded22642c7d #v0.27.0
|
||||
with:
|
||||
operating_system: freebsd
|
||||
version: "13.4"
|
||||
shutdown_vm: false
|
||||
run: make -j4
|
||||
- name: make test
|
||||
uses: cross-platform-actions/action@v0.26.0
|
||||
uses: cross-platform-actions/action@fe0167d8082ac584754ef3ffb567fded22642c7d #v0.27.0
|
||||
with:
|
||||
operating_system: freebsd
|
||||
version: "13.4"
|
||||
|
|
@ -388,7 +388,7 @@ jobs:
|
|||
sudo apt-get update
|
||||
sudo apt-get -yq install bison gettext keyutils ldap-utils libldap2-dev libkeyutils-dev python3 python3-paste python3-pyrad slapd tcsh python3-virtualenv virtualenv python3-kdcproxy
|
||||
- name: install cpanm and Test2::V0 for gost_engine testing
|
||||
uses: perl-actions/install-with-cpanm@stable
|
||||
uses: perl-actions/install-with-cpanm@10d60f00b4073f484fc29d45bfbe2f776397ab3d # v1.7
|
||||
with:
|
||||
install: Test2::V0
|
||||
- name: setup hostname workaround
|
||||
|
|
@ -422,7 +422,7 @@ jobs:
|
|||
uses: actions/setup-python@v5.3.0
|
||||
with:
|
||||
python-version: ${{ matrix.PYTHON }}
|
||||
- uses: dtolnay/rust-toolchain@master
|
||||
- uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4
|
||||
with:
|
||||
toolchain: ${{ matrix.RUST }}
|
||||
- name: test external pyca
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ jobs:
|
|||
- name: generate coverage info
|
||||
run: lcov -d . -c -o ./lcov.info
|
||||
- name: Coveralls upload
|
||||
uses: coverallsapp/github-action@v2.3.2
|
||||
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b #v2.3.6
|
||||
with:
|
||||
github-token: ${{ secrets.github_token }}
|
||||
path-to-lcov: ./lcov.info
|
||||
|
|
|
|||
|
|
@ -28,14 +28,14 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ilammy/msvc-dev-cmd@v1
|
||||
- uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 #v1.13.0
|
||||
with:
|
||||
arch: ${{ matrix.platform.arch }}
|
||||
- name: install nasm
|
||||
run: |
|
||||
choco install nasm ${{ matrix.platform.arch == 'win32' && '--x86' || '' }}
|
||||
"C:\Program Files${{ matrix.platform.arch == 'win32' && ' (x86)' || '' }}\NASM" | Out-File -FilePath "$env:GITHUB_PATH" -Append
|
||||
- uses: shogo82148/actions-setup-perl@v1
|
||||
- uses: shogo82148/actions-setup-perl@49c14f24551d2de3bf56fb107a869c3760b1875e #v1.33.0
|
||||
- name: prepare the build directory
|
||||
run: mkdir _build
|
||||
- name: config
|
||||
|
|
@ -65,8 +65,8 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ilammy/msvc-dev-cmd@v1
|
||||
- uses: shogo82148/actions-setup-perl@v1
|
||||
- uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 #v1.13.0
|
||||
- uses: shogo82148/actions-setup-perl@49c14f24551d2de3bf56fb107a869c3760b1875e #v1.33.0
|
||||
- name: prepare the build directory
|
||||
run: mkdir _build
|
||||
- name: config
|
||||
|
|
@ -89,8 +89,8 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ilammy/msvc-dev-cmd@v1
|
||||
- uses: shogo82148/actions-setup-perl@v1
|
||||
- uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 #v1.13.0
|
||||
- uses: shogo82148/actions-setup-perl@49c14f24551d2de3bf56fb107a869c3760b1875e #v1.33.0
|
||||
- name: prepare the build directory
|
||||
run: mkdir _build
|
||||
- name: config
|
||||
|
|
|
|||
|
|
@ -243,9 +243,17 @@ int ecparam_main(int argc, char **argv)
|
|||
goto end;
|
||||
}
|
||||
} else {
|
||||
params_key = load_keyparams(infile, informat, 1, "EC", "EC parameters");
|
||||
if (params_key == NULL || !EVP_PKEY_is_a(params_key, "EC"))
|
||||
params_key = load_keyparams_suppress(infile, informat, 1, "EC",
|
||||
"EC parameters", 1);
|
||||
if (params_key == NULL)
|
||||
params_key = load_keyparams_suppress(infile, informat, 1, "SM2",
|
||||
"SM2 parameters", 1);
|
||||
|
||||
if (params_key == NULL) {
|
||||
BIO_printf(bio_err, "Unable to load parameters from %s\n", infile);
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (point_format
|
||||
&& !EVP_PKEY_set_utf8_string_param(
|
||||
params_key, OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT,
|
||||
|
|
|
|||
|
|
@ -217,6 +217,10 @@ static ECDSA_SIG *sm2_sig_gen(const EC_KEY *key, const BIGNUM *e)
|
|||
BIGNUM *tmp = NULL;
|
||||
OSSL_LIB_CTX *libctx = ossl_ec_key_get_libctx(key);
|
||||
|
||||
if (dA == NULL) {
|
||||
ERR_raise(ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY);
|
||||
goto done;
|
||||
}
|
||||
kG = EC_POINT_new(group);
|
||||
ctx = BN_CTX_new_ex(libctx);
|
||||
if (kG == NULL || ctx == NULL) {
|
||||
|
|
|
|||
|
|
@ -410,12 +410,6 @@ OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx)
|
|||
if (ctx->loader != NULL)
|
||||
OSSL_TRACE(STORE, "Loading next object\n");
|
||||
|
||||
if (ctx->cached_info != NULL
|
||||
&& sk_OSSL_STORE_INFO_num(ctx->cached_info) == 0) {
|
||||
sk_OSSL_STORE_INFO_free(ctx->cached_info);
|
||||
ctx->cached_info = NULL;
|
||||
}
|
||||
|
||||
if (ctx->cached_info != NULL) {
|
||||
v = sk_OSSL_STORE_INFO_shift(ctx->cached_info);
|
||||
} else {
|
||||
|
|
@ -491,14 +485,23 @@ int OSSL_STORE_error(OSSL_STORE_CTX *ctx)
|
|||
|
||||
int OSSL_STORE_eof(OSSL_STORE_CTX *ctx)
|
||||
{
|
||||
int ret = 1;
|
||||
int ret = 0;
|
||||
|
||||
if (ctx->fetched_loader != NULL)
|
||||
ret = ctx->loader->p_eof(ctx->loader_ctx);
|
||||
if (ctx->cached_info != NULL
|
||||
&& sk_OSSL_STORE_INFO_num(ctx->cached_info) == 0) {
|
||||
sk_OSSL_STORE_INFO_free(ctx->cached_info);
|
||||
ctx->cached_info = NULL;
|
||||
}
|
||||
|
||||
if (ctx->cached_info == NULL) {
|
||||
ret = 1;
|
||||
if (ctx->fetched_loader != NULL)
|
||||
ret = ctx->loader->p_eof(ctx->loader_ctx);
|
||||
#ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||
if (ctx->fetched_loader == NULL)
|
||||
ret = ctx->loader->eof(ctx->loader_ctx);
|
||||
if (ctx->fetched_loader == NULL)
|
||||
ret = ctx->loader->eof(ctx->loader_ctx);
|
||||
#endif
|
||||
}
|
||||
return ret != 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,6 +54,8 @@ extern "C" {
|
|||
# define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY"
|
||||
# define PEM_STRING_PARAMETERS "PARAMETERS"
|
||||
# define PEM_STRING_CMS "CMS"
|
||||
# define PEM_STRING_SM2PRIVATEKEY "SM2 PRIVATE KEY"
|
||||
# define PEM_STRING_SM2PARAMETERS "SM2 PARAMETERS"
|
||||
|
||||
# define PEM_TYPE_ENCRYPTED 10
|
||||
# define PEM_TYPE_MIC_ONLY 20
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ DECODER_w_structure("X448", der, SubjectPublicKeyInfo, x448, yes),
|
|||
# ifndef OPENSSL_NO_SM2
|
||||
DECODER_w_structure("SM2", der, PrivateKeyInfo, sm2, no),
|
||||
DECODER_w_structure("SM2", der, SubjectPublicKeyInfo, sm2, no),
|
||||
DECODER_w_structure("SM2", der, type_specific_no_pub, sm2, no),
|
||||
# endif
|
||||
#endif
|
||||
DECODER_w_structure("RSA", der, PrivateKeyInfo, rsa, yes),
|
||||
|
|
|
|||
|
|
@ -806,6 +806,7 @@ MAKE_DECODER("ED448", ed448, ecx, SubjectPublicKeyInfo);
|
|||
# ifndef OPENSSL_NO_SM2
|
||||
MAKE_DECODER("SM2", sm2, ec, PrivateKeyInfo);
|
||||
MAKE_DECODER("SM2", sm2, ec, SubjectPublicKeyInfo);
|
||||
MAKE_DECODER("SM2", sm2, sm2, type_specific_no_pub);
|
||||
# endif
|
||||
#endif
|
||||
MAKE_DECODER("RSA", rsa, rsa, PrivateKeyInfo);
|
||||
|
|
|
|||
|
|
@ -119,6 +119,8 @@ static int pem2der_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
|
|||
{ PEM_STRING_DSAPARAMS, OSSL_OBJECT_PKEY, "DSA", "type-specific" },
|
||||
{ PEM_STRING_ECPRIVATEKEY, OSSL_OBJECT_PKEY, "EC", "type-specific" },
|
||||
{ PEM_STRING_ECPARAMETERS, OSSL_OBJECT_PKEY, "EC", "type-specific" },
|
||||
{ PEM_STRING_SM2PRIVATEKEY, OSSL_OBJECT_PKEY, "SM2", "type-specific" },
|
||||
{ PEM_STRING_SM2PARAMETERS, OSSL_OBJECT_PKEY, "SM2", "type-specific" },
|
||||
{ PEM_STRING_RSA, OSSL_OBJECT_PKEY, "RSA", "type-specific" },
|
||||
{ PEM_STRING_RSA_PUBLIC, OSSL_OBJECT_PKEY, "RSA", "type-specific" },
|
||||
|
||||
|
|
|
|||
|
|
@ -513,7 +513,8 @@ static int ec_to_text(BIO *out, const void *key, int selection)
|
|||
else if ((selection & OSSL_KEYMGMT_SELECT_PUBLIC_KEY) != 0)
|
||||
type_label = "Public-Key";
|
||||
else if ((selection & OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS) != 0)
|
||||
type_label = "EC-Parameters";
|
||||
if (EC_GROUP_get_curve_name(group) != NID_sm2)
|
||||
type_label = "EC-Parameters";
|
||||
|
||||
if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0) {
|
||||
const BIGNUM *priv_key = EC_KEY_get0_private_key(ec);
|
||||
|
|
@ -539,8 +540,9 @@ static int ec_to_text(BIO *out, const void *key, int selection)
|
|||
goto err;
|
||||
}
|
||||
|
||||
if (BIO_printf(out, "%s: (%d bit)\n", type_label,
|
||||
EC_GROUP_order_bits(group)) <= 0)
|
||||
if (type_label != NULL
|
||||
&& BIO_printf(out, "%s: (%d bit)\n", type_label,
|
||||
EC_GROUP_order_bits(group)) <= 0)
|
||||
goto err;
|
||||
if (priv != NULL
|
||||
&& !print_labeled_buf(out, "priv:", priv, priv_len))
|
||||
|
|
|
|||
|
|
@ -498,6 +498,7 @@ extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_ed448_decoder_functi
|
|||
#ifndef OPENSSL_NO_SM2
|
||||
extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_sm2_decoder_functions[];
|
||||
extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_sm2_decoder_functions[];
|
||||
extern const OSSL_DISPATCH ossl_type_specific_no_pub_der_to_sm2_decoder_functions[];
|
||||
#endif
|
||||
|
||||
extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_rsa_decoder_functions[];
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ IF[{- !$disabled{tests} -}]
|
|||
versions \
|
||||
aborttest test_test pkcs12_format_test \
|
||||
sanitytest rsa_complex exdatatest bntest \
|
||||
ecstresstest gmdifftest pbelutest \
|
||||
ecstresstest ec_comp_test gmdifftest pbelutest \
|
||||
destest mdc2test sha_test \
|
||||
exptest pbetest localetest evp_pkey_ctx_new_from_name\
|
||||
evp_pkey_provided_test evp_test evp_extra_test evp_extra_test2 \
|
||||
|
|
@ -106,6 +106,10 @@ IF[{- !$disabled{tests} -}]
|
|||
INCLUDE[ectest]=../include ../apps/include
|
||||
DEPEND[ectest]=../libcrypto.a libtestutil.a
|
||||
|
||||
SOURCE[ec_comp_test]=ec_comp_test.c
|
||||
INCLUDE[ec_comp_test]=../include ../apps/include
|
||||
DEPEND[ec_comp_test]=../libcrypto libtestutil.a
|
||||
|
||||
SOURCE[ecstresstest]=ecstresstest.c
|
||||
INCLUDE[ecstresstest]=../include ../apps/include
|
||||
DEPEND[ecstresstest]=../libcrypto libtestutil.a
|
||||
|
|
|
|||
|
|
@ -0,0 +1,518 @@
|
|||
#define OPENSSL_SUPPRESS_DEPRECATED
|
||||
#include "internal/nelem.h"
|
||||
#include <string.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/pem.h>
|
||||
#ifndef OPENSSL_NO_EC
|
||||
# include <openssl/ec.h>
|
||||
#endif
|
||||
#include "testutil.h"
|
||||
|
||||
#ifndef OPENSSL_NO_EC
|
||||
|
||||
static size_t num_known_curves;
|
||||
static EC_builtin_curve *known_curves;
|
||||
static const char **known_curve_names;
|
||||
static int nid_Oakley_EC2N_3;
|
||||
static int nid_Oakley_EC2N_4;
|
||||
static const char *data_path = ".";
|
||||
|
||||
static const char *const comp_formats[] = {
|
||||
"uncompressed",
|
||||
"compressed",
|
||||
"hybrid",
|
||||
"UNSPECIFIED",
|
||||
};
|
||||
|
||||
static const int comp_formats_i[] = {
|
||||
POINT_CONVERSION_UNCOMPRESSED,
|
||||
POINT_CONVERSION_COMPRESSED,
|
||||
POINT_CONVERSION_HYBRID,
|
||||
-1,
|
||||
};
|
||||
|
||||
static const char *const param_formats[] = {
|
||||
"named_curve",
|
||||
"explicit",
|
||||
"UNSPECIFIED",
|
||||
};
|
||||
|
||||
static const int param_formats_i[] = {
|
||||
OPENSSL_EC_NAMED_CURVE,
|
||||
0,
|
||||
-1,
|
||||
};
|
||||
|
||||
enum {
|
||||
KEY_SRC_EXISTING,
|
||||
KEY_SRC_GENERATE
|
||||
};
|
||||
|
||||
enum {
|
||||
OBJ_TYPE_PARAMS,
|
||||
OBJ_TYPE_KEY
|
||||
};
|
||||
|
||||
static int init_curves(void)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
num_known_curves = EC_get_builtin_curves(NULL, 0);
|
||||
known_curves = OPENSSL_malloc(num_known_curves * sizeof(*known_curves));
|
||||
if (known_curves == NULL
|
||||
|| EC_get_builtin_curves(known_curves, num_known_curves) == 0)
|
||||
goto fail;
|
||||
|
||||
known_curve_names = OPENSSL_malloc(sizeof(char *) * num_known_curves);
|
||||
if (known_curve_names == NULL)
|
||||
goto fail;
|
||||
|
||||
for (i = 0; i < num_known_curves; ++i) {
|
||||
known_curve_names[i] = OBJ_nid2sn(known_curves[i].nid);
|
||||
if (!strcmp(known_curve_names[i], "Oakley-EC2N-3"))
|
||||
nid_Oakley_EC2N_3 = known_curves[i].nid;
|
||||
if (!strcmp(known_curve_names[i], "Oakley-EC2N-4"))
|
||||
nid_Oakley_EC2N_4 = known_curves[i].nid;
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
fail:
|
||||
OPENSSL_free(known_curves);
|
||||
known_curves = NULL;
|
||||
OPENSSL_free(known_curve_names);
|
||||
known_curve_names = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int should_skip(size_t curve_i, size_t param_format_i, size_t comp_format_i, int key_src)
|
||||
{
|
||||
/*
|
||||
* If we are loading an existing key it does not make sense to test
|
||||
* unspecified formats, since we know what format is used.
|
||||
*/
|
||||
if ( key_src == KEY_SRC_EXISTING
|
||||
&& ( comp_formats_i[comp_format_i] < 0
|
||||
|| param_formats_i[param_format_i] < 0))
|
||||
return 1;
|
||||
|
||||
/* Skip experimental curves, which behave oddly */
|
||||
if (known_curves[curve_i].nid == nid_Oakley_EC2N_3)
|
||||
return 1;
|
||||
if (known_curves[curve_i].nid == nid_Oakley_EC2N_4)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static EC_KEY *generate_new_key(size_t curve_i, size_t param_format_i,
|
||||
size_t comp_format_i, int obj_type)
|
||||
{
|
||||
EC_KEY *k = NULL;
|
||||
EC_GROUP *g = NULL;
|
||||
|
||||
int asn1_flag = param_formats_i[param_format_i];
|
||||
int point_form = comp_formats_i[comp_format_i];
|
||||
|
||||
g = EC_GROUP_new_by_curve_name(known_curves[curve_i].nid);
|
||||
if (g == NULL) {
|
||||
printf("# cannot create EC_GROUP\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (asn1_flag >= 0)
|
||||
EC_GROUP_set_asn1_flag(g, asn1_flag);
|
||||
if (point_form >= 0)
|
||||
EC_GROUP_set_point_conversion_form(g, point_form);
|
||||
|
||||
k = EC_KEY_new();
|
||||
if (k == NULL) {
|
||||
printf("# cannot create EC_KEY\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (EC_KEY_set_group(k, g) == 0) {
|
||||
printf("# cannot set group\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
EC_GROUP_free(g);
|
||||
g = NULL;
|
||||
|
||||
if (EC_KEY_generate_key(k) == 0) {
|
||||
printf("# cannot generate key\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
return k;
|
||||
|
||||
fail:
|
||||
EC_KEY_free(k);
|
||||
EC_GROUP_free(g);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static EC_KEY *get_existing_key(size_t curve_i, size_t param_format_i,
|
||||
size_t comp_format_i, int obj_type)
|
||||
{
|
||||
EC_KEY *k = NULL, *res = NULL;
|
||||
EC_GROUP *g = NULL;
|
||||
BIO *b = NULL;
|
||||
char filename[256];
|
||||
|
||||
OPENSSL_assert(param_formats_i[param_format_i] >= 0);
|
||||
OPENSSL_assert(comp_formats_i[comp_format_i] >= 0);
|
||||
|
||||
if (obj_type == OBJ_TYPE_PARAMS)
|
||||
snprintf(filename, sizeof(filename), "%s/%s-%s.param",
|
||||
data_path,
|
||||
known_curve_names[curve_i],
|
||||
param_formats[param_format_i]);
|
||||
else
|
||||
snprintf(filename, sizeof(filename), "%s/%s-%s-%s.priv",
|
||||
data_path,
|
||||
known_curve_names[curve_i],
|
||||
param_formats[param_format_i],
|
||||
comp_formats[comp_format_i]);
|
||||
|
||||
b = BIO_new_file(filename, "rb");
|
||||
if (b == NULL) {
|
||||
printf("# cannot create file BIO\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (obj_type == OBJ_TYPE_PARAMS) {
|
||||
if (PEM_read_bio_ECPKParameters(b, &g, NULL, NULL) == 0) {
|
||||
printf("# cannot read params PEM\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
k = EC_KEY_new();
|
||||
if (k == NULL) {
|
||||
printf("# cannot create EC_KEY\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (EC_KEY_set_group(k, g) == 0) {
|
||||
printf("# cannot set group\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
EC_GROUP_free(g);
|
||||
g = NULL;
|
||||
} else {
|
||||
if (PEM_read_bio_ECPrivateKey(b, &k, NULL, NULL) == 0) {
|
||||
printf("# cannot read key PEM\n");
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
res = k;
|
||||
k = NULL;
|
||||
fail:
|
||||
EC_GROUP_free(g);
|
||||
EC_KEY_free(k);
|
||||
BIO_free(b);
|
||||
return res;
|
||||
}
|
||||
|
||||
static int verify_expected(int expected_param_format, int expected_comp_format,
|
||||
int actual_asn1_flag, int actual_point_form, int obj_type)
|
||||
{
|
||||
if (obj_type == OBJ_TYPE_KEY) {
|
||||
/* Only makes sense to test comp format on key */
|
||||
if (expected_comp_format >= 0) {
|
||||
/*
|
||||
* If a compression format was specified, it must be used; however
|
||||
* when deserializing conversion to uncompressed always occurs in
|
||||
* 1.1
|
||||
*/
|
||||
if (!TEST_int_eq(expected_comp_format, actual_point_form))
|
||||
return 0;
|
||||
} else {
|
||||
/*
|
||||
* If a compression format was not specified, uncompressed should be
|
||||
* default
|
||||
*/
|
||||
if (!TEST_int_eq(POINT_CONVERSION_UNCOMPRESSED, actual_point_form))
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (expected_param_format >= 0) {
|
||||
/* If a parameter format was specified, it must be used */
|
||||
if (!TEST_int_eq(expected_param_format, actual_asn1_flag))
|
||||
return 0;
|
||||
} else {
|
||||
/* If a parameter format was not specified, expect named curve */
|
||||
if (!TEST_int_eq(OPENSSL_EC_NAMED_CURVE, actual_asn1_flag))
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int test_reserialize(EC_KEY *k,
|
||||
int param_format,
|
||||
int comp_format,
|
||||
int new_param_format,
|
||||
int new_comp_format,
|
||||
int key_src,
|
||||
int obj_type)
|
||||
{
|
||||
int rv = 0, res_asn1_flag, res_point_form, buf_len;
|
||||
unsigned char *buf = NULL, *bufi;
|
||||
EC_KEY *k2 = NULL;
|
||||
EC_GROUP *g = NULL;
|
||||
const EC_GROUP *gref = NULL;
|
||||
|
||||
/*
|
||||
* Duplicate k so our changing parameters below does not
|
||||
* affect other tests
|
||||
*/
|
||||
k = EC_KEY_dup(k);
|
||||
if (k == NULL) {
|
||||
printf("# Cannot dup key\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (new_param_format >= 0)
|
||||
EC_KEY_set_asn1_flag(k, new_param_format);
|
||||
else
|
||||
new_param_format = param_format;
|
||||
|
||||
if (new_comp_format >= 0)
|
||||
EC_KEY_set_conv_form(k, new_comp_format);
|
||||
else if (key_src == KEY_SRC_GENERATE)
|
||||
/*
|
||||
* If we just generated our key we effectively already set the format,
|
||||
* so we need to expect that rather than the default. Otherwise expect
|
||||
* reversion to uncompressed.
|
||||
*/
|
||||
new_comp_format = comp_format;
|
||||
else
|
||||
new_comp_format = POINT_CONVERSION_UNCOMPRESSED;
|
||||
|
||||
if (obj_type == OBJ_TYPE_KEY) {
|
||||
/* If we are checking a private key: */
|
||||
if (!EC_KEY_check_key(k)) {
|
||||
printf("# Key did not pass check\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
buf_len = i2d_ECPrivateKey(k, &buf);
|
||||
if (buf_len <= 0 || buf == NULL) {
|
||||
printf("# Cannot serialize during key reserialization test\n");
|
||||
printf("# pf=%d cf=%d npf=%d ncf=%d ks=%d\n", param_format, comp_format,
|
||||
new_param_format, new_comp_format, key_src);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
bufi = buf;
|
||||
k2 = d2i_ECPrivateKey(NULL, (const unsigned char **)&bufi, buf_len);
|
||||
if (k2 == NULL) {
|
||||
printf("# Cannot deserialize during key reserialization test\n");
|
||||
printf("# pf=%d cf=%d npf=%d ncf=%d ks=%d\n", param_format, comp_format,
|
||||
new_param_format, new_comp_format, key_src);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/*
|
||||
* When we put keys through serialization and then deserialization, they
|
||||
* always become uncompressed. (The same is not true for parameters,
|
||||
* however.)
|
||||
*/
|
||||
new_comp_format = POINT_CONVERSION_UNCOMPRESSED;
|
||||
gref = EC_KEY_get0_group(k2);
|
||||
} else {
|
||||
buf_len = i2d_ECPKParameters(EC_KEY_get0_group(k), &buf);
|
||||
if (buf_len <= 0 || buf == NULL) {
|
||||
printf("# Cannot serialize during param reserialization test\n");
|
||||
printf("# pf=%d cf=%d npf=%d ncf=%d ks=%d\n", param_format, comp_format,
|
||||
new_param_format, new_comp_format, key_src);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
bufi = buf;
|
||||
gref = g = d2i_ECPKParameters(NULL, (const unsigned char **)&bufi, buf_len);
|
||||
if (gref == NULL) {
|
||||
printf("# Cannot deserialize during param reserialization test\n");
|
||||
printf("# pf=%d cf=%d npf=%d ncf=%d ks=%d\n", param_format, comp_format,
|
||||
new_param_format, new_comp_format, key_src);
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
res_asn1_flag = EC_GROUP_get_asn1_flag(gref);
|
||||
res_point_form = EC_GROUP_get_point_conversion_form(gref);
|
||||
|
||||
if (!verify_expected(new_param_format, new_comp_format, res_asn1_flag, res_point_form, obj_type)) {
|
||||
printf("# Expectation failed during reserialization test\n");
|
||||
printf("# pf=%d cf=%d npf=%d ncf=%d ks=%d\n", param_format, comp_format,
|
||||
new_param_format, new_comp_format, key_src);
|
||||
printf("# res_asn1=%d res_point=%d\n", res_asn1_flag, res_point_form);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
rv = 1;
|
||||
fail:
|
||||
EC_KEY_free(k2);
|
||||
EC_KEY_free(k);
|
||||
EC_GROUP_free(g);
|
||||
OPENSSL_free(buf);
|
||||
return rv;
|
||||
}
|
||||
|
||||
static int comp_test_actual(size_t curve_i,
|
||||
size_t param_format_i,
|
||||
size_t comp_format_i,
|
||||
int key_src /* KEY_SRC_{EXISTING,GENERATE} */,
|
||||
int obj_type /* OBJ_TYPE_{PARAMS,KEY} */)
|
||||
{
|
||||
int rc = 0;
|
||||
EC_KEY *k = NULL;
|
||||
int expected_param_format, expected_comp_format;
|
||||
int res_asn1_flag, res_point_form;
|
||||
size_t ci, pi;
|
||||
|
||||
if (should_skip(curve_i, param_format_i, comp_format_i, key_src))
|
||||
return 1;
|
||||
|
||||
/* Load or generate key. */
|
||||
k = (key_src == KEY_SRC_EXISTING)
|
||||
? get_existing_key(curve_i,
|
||||
param_format_i,
|
||||
comp_format_i,
|
||||
obj_type)
|
||||
: generate_new_key(curve_i,
|
||||
param_format_i,
|
||||
comp_format_i,
|
||||
obj_type);
|
||||
if (k == NULL)
|
||||
goto fail;
|
||||
|
||||
/* Verify param/compression formats on loaded/generated key directly. */
|
||||
res_asn1_flag = EC_GROUP_get_asn1_flag(EC_KEY_get0_group(k));
|
||||
res_point_form = EC_GROUP_get_point_conversion_form(EC_KEY_get0_group(k));
|
||||
|
||||
expected_param_format = param_formats_i[param_format_i];
|
||||
expected_comp_format = comp_formats_i[comp_format_i];
|
||||
if (key_src == KEY_SRC_EXISTING)
|
||||
expected_comp_format = POINT_CONVERSION_UNCOMPRESSED;
|
||||
|
||||
if (!verify_expected(expected_param_format, expected_comp_format,
|
||||
res_asn1_flag, res_point_form, obj_type)) {
|
||||
printf("# Expectation failed during initial test\n");
|
||||
printf("# pfi=%s cfi=%s\n",
|
||||
param_formats[param_format_i], comp_formats[comp_format_i]);
|
||||
printf("# epf=%d ecf=%d res_asn1=%d res_point=%d o=%d\n",
|
||||
expected_param_format, expected_comp_format,
|
||||
res_asn1_flag, res_point_form, obj_type);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/*
|
||||
* Test parameter/compression behaviour when round tripping through
|
||||
* serialization and deserialization.
|
||||
*/
|
||||
/* For each supported compression format (and unspecified) */
|
||||
for (ci = 0; ci < OSSL_NELEM(comp_formats_i); ++ci)
|
||||
/* For each of (named parameters, explicit parameters, unspecified) */
|
||||
for (pi = 0; pi < OSSL_NELEM(param_formats_i); ++pi)
|
||||
if (!test_reserialize(k, param_formats_i[param_format_i], comp_formats_i[comp_format_i],
|
||||
param_formats_i[pi], comp_formats_i[ci], key_src, obj_type))
|
||||
goto fail;
|
||||
|
||||
rc = 1;
|
||||
fail:
|
||||
EC_KEY_free(k);
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int from_deserialized_test(int curve_i, int obj_type)
|
||||
{
|
||||
size_t comp_format_i, param_format_i;
|
||||
|
||||
/* For each of (named parameters, explicit parameters, unspecified) */
|
||||
for (param_format_i = 0; param_format_i < 3; ++param_format_i)
|
||||
/* For each supported compression format (and unspecified) */
|
||||
for (comp_format_i = 0;
|
||||
comp_format_i < OSSL_NELEM(comp_formats);
|
||||
++comp_format_i)
|
||||
if (comp_test_actual(curve_i, param_format_i,
|
||||
comp_format_i, KEY_SRC_EXISTING, obj_type) == 0)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int from_generated_test(int curve_i, int obj_type)
|
||||
{
|
||||
size_t comp_format_i, param_format_i;
|
||||
|
||||
/* For each of (named parameters, explicit parameters, unspecified) */
|
||||
for (param_format_i = 0; param_format_i < 3; ++param_format_i)
|
||||
/* For each supported compression format (and unspecified) */
|
||||
for (comp_format_i = 0;
|
||||
comp_format_i < OSSL_NELEM(comp_formats);
|
||||
++comp_format_i)
|
||||
if (comp_test_actual(curve_i, param_format_i,
|
||||
comp_format_i, KEY_SRC_GENERATE, obj_type) == 0)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int from_deserialized_params_test(int curve_i)
|
||||
{
|
||||
return from_deserialized_test(curve_i, OBJ_TYPE_PARAMS);
|
||||
}
|
||||
|
||||
static int from_deserialized_key_test(int curve_i)
|
||||
{
|
||||
return from_deserialized_test(curve_i, OBJ_TYPE_KEY);
|
||||
}
|
||||
|
||||
static int from_generated_params_test(int curve_i)
|
||||
{
|
||||
return from_generated_test(curve_i, OBJ_TYPE_PARAMS);
|
||||
}
|
||||
|
||||
static int from_generated_key_test(int curve_i)
|
||||
{
|
||||
return from_generated_test(curve_i, OBJ_TYPE_KEY);
|
||||
}
|
||||
#endif
|
||||
|
||||
int setup_tests(void)
|
||||
{
|
||||
#ifndef OPENSSL_NO_EC
|
||||
if (test_get_argument_count() > 0) {
|
||||
test_skip_common_options();
|
||||
data_path = test_get_argument(0);
|
||||
}
|
||||
|
||||
if (init_curves() == 0) {
|
||||
printf("# Failed to initialize curves\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
ADD_ALL_TESTS(from_deserialized_params_test, num_known_curves);
|
||||
ADD_ALL_TESTS(from_deserialized_key_test, num_known_curves);
|
||||
ADD_ALL_TESTS(from_generated_params_test, num_known_curves);
|
||||
ADD_ALL_TESTS(from_generated_key_test, num_known_curves);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
void cleanup_tests(void)
|
||||
{
|
||||
#ifndef OPENSSL_NO_EC
|
||||
OPENSSL_free(known_curves);
|
||||
known_curves = NULL;
|
||||
OPENSSL_free(known_curve_names);
|
||||
known_curve_names = NULL;
|
||||
#endif
|
||||
}
|
||||
|
|
@ -18,7 +18,7 @@ setup("test_ec");
|
|||
|
||||
plan skip_all => 'EC is not supported in this build' if disabled('ec');
|
||||
|
||||
plan tests => 15;
|
||||
plan tests => 16;
|
||||
|
||||
my $no_fips = disabled('fips') || ($ENV{NO_FIPS} // 0);
|
||||
|
||||
|
|
@ -33,6 +33,16 @@ subtest 'EC conversions -- private key' => sub {
|
|||
tconversion( -type => 'ec', -prefix => 'ec-priv',
|
||||
-in => srctop_file("test","testec-p256.pem") );
|
||||
};
|
||||
|
||||
SKIP: {
|
||||
skip "SM2 is not supported by this OpenSSL build", 1
|
||||
if disabled("sm2");
|
||||
subtest 'EC conversions -- private key' => sub {
|
||||
tconversion( -type => 'ec', -prefix => 'sm2-priv',
|
||||
-in => srctop_file("test","testec-sm2.pem") );
|
||||
};
|
||||
}
|
||||
|
||||
subtest 'EC conversions -- private key PKCS#8' => sub {
|
||||
tconversion( -type => 'ec', -prefix => 'ec-pkcs8',
|
||||
-in => srctop_file("test","testec-p256.pem"),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,127 @@
|
|||
#! /usr/bin/env perl
|
||||
# Copyright 2015-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the OpenSSL license (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use File::Spec;
|
||||
use OpenSSL::Test qw/:DEFAULT data_dir/;
|
||||
use OpenSSL::Test::Utils;
|
||||
|
||||
setup("test_ec_comp");
|
||||
|
||||
# Only need to test a few curves as behaviour should be the same.
|
||||
# Testing all the curves would take excessive time.
|
||||
my @curvesdata = run(app(["openssl", "ecparam", "-list_curves"]), capture => 1);
|
||||
my @curves;
|
||||
foreach (@curvesdata) {
|
||||
my @parts = split(/:/, $_, 2);
|
||||
my $p = $parts[0];
|
||||
if ($p =~ /^\t/) { next; }
|
||||
$p =~ s/\s+//g;
|
||||
if (!($p =~ /(secp256k1|prime256v1|sect571r1|brainpoolP384r1)/)) { next; }
|
||||
push @curves, $p;
|
||||
}
|
||||
|
||||
plan tests => 1 + scalar @curves;
|
||||
|
||||
ok(run(test(["ec_comp_test", data_dir("")])), "running ec_comp_test");
|
||||
|
||||
my @param_encs = qw/named_curve explicit/;
|
||||
my @param_encs_e = qw/named_curve explicit unspecified/;
|
||||
my @conv_forms = qw/uncompressed compressed hybrid/;
|
||||
my @conv_forms_e = qw/uncompressed compressed hybrid unspecified/;
|
||||
my $data_path = data_dir("");
|
||||
|
||||
sub classify_key {
|
||||
my $fn = shift;
|
||||
my @text = run(app(["openssl", "ec", "-in", $fn, "-text"]),
|
||||
capture => 1);
|
||||
my $text = join "", @text;
|
||||
my @asn1 = run(app(["openssl", "asn1parse", "-dump", "-in", $fn]),
|
||||
capture => 1);
|
||||
my $asn1 = join "", @asn1;
|
||||
|
||||
$asn1 =~ s/.*BIT STRING//s;
|
||||
|
||||
my $res_comp_type;
|
||||
if (grep /\s0000 - 00 0[67]/, $asn1) {
|
||||
$res_comp_type = "hybrid";
|
||||
} elsif (grep /\s0000 - 00 0[45]/, $asn1) {
|
||||
$res_comp_type = "uncompressed";
|
||||
} elsif (grep /\s0000 - 00 0[23]/, $asn1) {
|
||||
$res_comp_type = "compressed";
|
||||
} else {
|
||||
die "unknown compression type";
|
||||
}
|
||||
|
||||
my $res_param_enc;
|
||||
if (grep /\sASN1 OID:/, $text) {
|
||||
$res_param_enc = "named_curve";
|
||||
} elsif (grep /\sField Type:/, $text) {
|
||||
$res_param_enc = "explicit";
|
||||
} else {
|
||||
die "unknown param form";
|
||||
}
|
||||
|
||||
return "$res_comp_type/$res_param_enc";
|
||||
}
|
||||
|
||||
SKIP: {
|
||||
skip "FIXME: Intentionally skipping CLI round-trip tests", scalar @curves;
|
||||
skip "EC is not supported by this OpenSSL build", scalar @curves if disabled("ec");
|
||||
|
||||
foreach my $curve (@curves) {
|
||||
subtest "=== openssl ec CLI round-trip for curve $curve" => sub {
|
||||
foreach my $param_enc (@param_encs) {
|
||||
foreach my $conv_form (@conv_forms) {
|
||||
# Run openssl ecparam -genkey using input parameters.
|
||||
run(app(["openssl", "ecparam", "-check",
|
||||
"-in", "$data_path/$curve-$param_enc.param",
|
||||
"-conv_form", $conv_form, "-param_enc", $param_enc,
|
||||
"-genkey", "-noout", "-out", "key.tmp"]));
|
||||
my $expect = "$conv_form/$param_enc";
|
||||
my $result = classify_key("key.tmp");
|
||||
ok($expect eq $result, "(1): got '$result' expected '$expect'");
|
||||
|
||||
foreach my $param_enc2 (@param_encs_e) {
|
||||
foreach my $conv_form2 (@conv_forms_e) {
|
||||
# Now try round-tripping a key through openssl ec,
|
||||
# potentially specifying new compression/param formats.
|
||||
my @args = qw(openssl ec -in key.tmp -out key2.tmp);
|
||||
if ($conv_form2 ne "unspecified") {
|
||||
push(@args, "-conv_form");
|
||||
push(@args, $conv_form2);
|
||||
}
|
||||
if ($param_enc2 ne "unspecified") {
|
||||
push(@args, "-param_enc");
|
||||
push(@args, $param_enc2);
|
||||
}
|
||||
run(app([@args]));
|
||||
|
||||
my $expect_conv = $conv_form2;
|
||||
if ($expect_conv eq "unspecified") {
|
||||
$expect_conv = $conv_form;
|
||||
}
|
||||
|
||||
my $expect_param = $param_enc2;
|
||||
if ($expect_param eq "unspecified") {
|
||||
$expect_param = $param_enc;
|
||||
}
|
||||
|
||||
my $expect2 = "$expect_conv/$expect_param";
|
||||
my $result2 = classify_key("key2.tmp");
|
||||
ok($expect2 eq $result2,
|
||||
"(2): expected '$expect2' got '$result2'");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIIBEQIBAQQgYqt6c/Mn0qpPl4T53E7urhE6toTRrfRHLZ/6D/CmVtuggcMwgcAC
|
||||
AQEwLAYHKoZIzj0BAQIhAP////7/////////////////////AAAAAP//////////
|
||||
MEQEIP////7/////////////////////AAAAAP/////////8BCAo6fqenZ9eNE1a
|
||||
nkvPZQmn85eJ9RWrj5LdvL1BTZQOkwQhAjLEriwfGYEZX5kERmo5yZSP4wu/8mYL
|
||||
4XFaRYkzTHTHAiEA/////v///////////////3ID32shxgUrU7v0CTnVQSMCAQGh
|
||||
JAMiAAOoXb6rK9JT+hDbIv2Q5p1yko5O4p49FzFb1NvCV4Zk8A==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHzMIHMBgcqhkjOPQIBMIHAAgEBMCwGByqGSM49AQECIQD////+////////////
|
||||
/////////wAAAAD//////////zBEBCD////+/////////////////////wAAAAD/
|
||||
/////////AQgKOn6np2fXjRNWp5Lz2UJp/OXifUVq4+S3by9QU2UDpMEIQIyxK4s
|
||||
HxmBGV+ZBEZqOcmUj+MLv/JmC+FxWkWJM0x0xwIhAP////7///////////////9y
|
||||
A99rIcYFK1O79Ak51UEjAgEBAyIAA6hdvqsr0lP6ENsi/ZDmnXKSjk7inj0XMVvU
|
||||
28JXhmTw
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIIBUQIBAQQgYqt6c/Mn0qpPl4T53E7urhE6toTRrfRHLZ/6D/CmVtuggeMwgeAC
|
||||
AQEwLAYHKoZIzj0BAQIhAP////7/////////////////////AAAAAP//////////
|
||||
MEQEIP////7/////////////////////AAAAAP/////////8BCAo6fqenZ9eNE1a
|
||||
nkvPZQmn85eJ9RWrj5LdvL1BTZQOkwRBBjLEriwfGYEZX5kERmo5yZSP4wu/8mYL
|
||||
4XFaRYkzTHTHvDc2ovT2d5xZvc7ja2khU9Cph3zGKkdAAt8y5SE58KACIQD////+
|
||||
////////////////cgPfayHGBStTu/QJOdVBIwIBAaFEA0IAB6hdvqsr0lP6ENsi
|
||||
/ZDmnXKSjk7inj0XMVvU28JXhmTwJBztl/IOFu5Yc0YItOCKak56FTjFC0Z9Klp1
|
||||
zzhGNNc=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEA/////v//////////
|
||||
//////////8AAAAA//////////8wRAQg/////v////////////////////8AAAAA
|
||||
//////////wEICjp+p6dn140TVqeS89lCafzl4n1FauPkt28vUFNlA6TBEEGMsSu
|
||||
LB8ZgRlfmQRGajnJlI/jC7/yZgvhcVpFiTNMdMe8Nzai9PZ3nFm9zuNraSFT0KmH
|
||||
fMYqR0AC3zLlITnwoAIhAP////7///////////////9yA99rIcYFK1O79Ak51UEj
|
||||
AgEBA0IAB6hdvqsr0lP6ENsi/ZDmnXKSjk7inj0XMVvU28JXhmTwJBztl/IOFu5Y
|
||||
c0YItOCKak56FTjFC0Z9Klp1zzhGNNc=
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIIBUQIBAQQgYqt6c/Mn0qpPl4T53E7urhE6toTRrfRHLZ/6D/CmVtuggeMwgeAC
|
||||
AQEwLAYHKoZIzj0BAQIhAP////7/////////////////////AAAAAP//////////
|
||||
MEQEIP////7/////////////////////AAAAAP/////////8BCAo6fqenZ9eNE1a
|
||||
nkvPZQmn85eJ9RWrj5LdvL1BTZQOkwRBBDLEriwfGYEZX5kERmo5yZSP4wu/8mYL
|
||||
4XFaRYkzTHTHvDc2ovT2d5xZvc7ja2khU9Cph3zGKkdAAt8y5SE58KACIQD////+
|
||||
////////////////cgPfayHGBStTu/QJOdVBIwIBAaFEA0IABKhdvqsr0lP6ENsi
|
||||
/ZDmnXKSjk7inj0XMVvU28JXhmTwJBztl/IOFu5Yc0YItOCKak56FTjFC0Z9Klp1
|
||||
zzhGNNc=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEA/////v//////////
|
||||
//////////8AAAAA//////////8wRAQg/////v////////////////////8AAAAA
|
||||
//////////wEICjp+p6dn140TVqeS89lCafzl4n1FauPkt28vUFNlA6TBEEEMsSu
|
||||
LB8ZgRlfmQRGajnJlI/jC7/yZgvhcVpFiTNMdMe8Nzai9PZ3nFm9zuNraSFT0KmH
|
||||
fMYqR0AC3zLlITnwoAIhAP////7///////////////9yA99rIcYFK1O79Ak51UEj
|
||||
AgEBA0IABKhdvqsr0lP6ENsi/ZDmnXKSjk7inj0XMVvU28JXhmTwJBztl/IOFu5Y
|
||||
c0YItOCKak56FTjFC0Z9Klp1zzhGNNc=
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
Field Type: prime-field
|
||||
Prime:
|
||||
00:ff:ff:ff:fe:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
|
||||
ff:ff:ff:ff:ff:ff:00:00:00:00:ff:ff:ff:ff:ff:
|
||||
ff:ff:ff
|
||||
A:
|
||||
00:ff:ff:ff:fe:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
|
||||
ff:ff:ff:ff:ff:ff:00:00:00:00:ff:ff:ff:ff:ff:
|
||||
ff:ff:fc
|
||||
B:
|
||||
28:e9:fa:9e:9d:9f:5e:34:4d:5a:9e:4b:cf:65:09:
|
||||
a7:f3:97:89:f5:15:ab:8f:92:dd:bc:bd:41:4d:94:
|
||||
0e:93
|
||||
Generator (uncompressed):
|
||||
04:32:c4:ae:2c:1f:19:81:19:5f:99:04:46:6a:39:
|
||||
c9:94:8f:e3:0b:bf:f2:66:0b:e1:71:5a:45:89:33:
|
||||
4c:74:c7:bc:37:36:a2:f4:f6:77:9c:59:bd:ce:e3:
|
||||
6b:69:21:53:d0:a9:87:7c:c6:2a:47:40:02:df:32:
|
||||
e5:21:39:f0:a0
|
||||
Order:
|
||||
00:ff:ff:ff:fe:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
|
||||
ff:ff:72:03:df:6b:21:c6:05:2b:53:bb:f4:09:39:
|
||||
d5:41:23
|
||||
Cofactor: 1 (0x1)
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
MIHgAgEBMCwGByqGSM49AQECIQD////+/////////////////////wAAAAD/////
|
||||
/////zBEBCD////+/////////////////////wAAAAD//////////AQgKOn6np2f
|
||||
XjRNWp5Lz2UJp/OXifUVq4+S3by9QU2UDpMEQQQyxK4sHxmBGV+ZBEZqOcmUj+ML
|
||||
v/JmC+FxWkWJM0x0x7w3NqL09necWb3O42tpIVPQqYd8xipHQALfMuUhOfCgAiEA
|
||||
/////v///////////////3ID32shxgUrU7v0CTnVQSMCAQE=
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MFcCAQEEIOHT4WKsT5RHdrK+b4yuT7Q2X5R1O4DhUO1F4xx1oHhCoAoGCCqBHM9V
|
||||
AYItoSQDIgACjCCvG6UbzRDi1ZVhciRNLPy9wWuB6aqYLFltaVbs6w8=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MDkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DIgACjCCvG6UbzRDi1ZVhciRNLPy9wWuB
|
||||
6aqYLFltaVbs6w8=
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MHcCAQEEIOHT4WKsT5RHdrK+b4yuT7Q2X5R1O4DhUO1F4xx1oHhCoAoGCCqBHM9V
|
||||
AYItoUQDQgAGjCCvG6UbzRDi1ZVhciRNLPy9wWuB6aqYLFltaVbs6w81taDCgTRk
|
||||
gAnYngNOh0OyMY36ncMD7o3moeDZMA3nMg==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAGjCCvG6UbzRDi1ZVhciRNLPy9wWuB
|
||||
6aqYLFltaVbs6w81taDCgTRkgAnYngNOh0OyMY36ncMD7o3moeDZMA3nMg==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MHcCAQEEIOHT4WKsT5RHdrK+b4yuT7Q2X5R1O4DhUO1F4xx1oHhCoAoGCCqBHM9V
|
||||
AYItoUQDQgAEjCCvG6UbzRDi1ZVhciRNLPy9wWuB6aqYLFltaVbs6w81taDCgTRk
|
||||
gAnYngNOh0OyMY36ncMD7o3moeDZMA3nMg==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEjCCvG6UbzRDi1ZVhciRNLPy9wWuB
|
||||
6aqYLFltaVbs6w81taDCgTRkgAnYngNOh0OyMY36ncMD7o3moeDZMA3nMg==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
ASN1 OID: SM2
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
BggqgRzPVQGCLQ==
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIG9AgEBBBQjBOmq4WBeljOisNk/ALupFv1E16CBhzCBhAIBATAgBgcqhkjOPQEB
|
||||
AhUA6V5KX3NwWdxg38etlbPYE5UVYg8wLAQUNA574qKA63TivmG62nRdl+j3wwAE
|
||||
FB5YmoWVQjQSE0+qLb3slcjYZ15YBBUDvtWvFuo/ak9ik4xGMeta972828MCFQDp
|
||||
Xkpfc3BZ3GDfWZHUUClAnmD8CQIBAaEYAxYAA6powVcVfjw2cxUcI+ANEdW34OZU
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIGrMIGQBgcqhkjOPQIBMIGEAgEBMCAGByqGSM49AQECFQDpXkpfc3BZ3GDfx62V
|
||||
s9gTlRViDzAsBBQ0DnviooDrdOK+YbradF2X6PfDAAQUHliahZVCNBITT6otveyV
|
||||
yNhnXlgEFQO+1a8W6j9qT2KTjEYx61r3vbzbwwIVAOleSl9zcFncYN9ZkdRQKUCe
|
||||
YPwJAgEBAxYAA6powVcVfjw2cxUcI+ANEdW34OZU
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIHlAgEBBBQjBOmq4WBeljOisNk/ALupFv1E16CBmzCBmAIBATAgBgcqhkjOPQEB
|
||||
AhUA6V5KX3NwWdxg38etlbPYE5UVYg8wLAQUNA574qKA63TivmG62nRdl+j3wwAE
|
||||
FB5YmoWVQjQSE0+qLb3slcjYZ15YBCkHvtWvFuo/ak9ik4xGMeta972828MWZ8tH
|
||||
ehqOwzj5R0FmnJdjFtpjIQIVAOleSl9zcFncYN9ZkdRQKUCeYPwJAgEBoSwDKgAH
|
||||
qmjBVxV+PDZzFRwj4A0R1bfg5lRonKRPNAoa9nEtpL7LhB1so2K5iw==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHTMIGkBgcqhkjOPQIBMIGYAgEBMCAGByqGSM49AQECFQDpXkpfc3BZ3GDfx62V
|
||||
s9gTlRViDzAsBBQ0DnviooDrdOK+YbradF2X6PfDAAQUHliahZVCNBITT6otveyV
|
||||
yNhnXlgEKQe+1a8W6j9qT2KTjEYx61r3vbzbwxZny0d6Go7DOPlHQWacl2MW2mMh
|
||||
AhUA6V5KX3NwWdxg31mR1FApQJ5g/AkCAQEDKgAHqmjBVxV+PDZzFRwj4A0R1bfg
|
||||
5lRonKRPNAoa9nEtpL7LhB1so2K5iw==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIHlAgEBBBQjBOmq4WBeljOisNk/ALupFv1E16CBmzCBmAIBATAgBgcqhkjOPQEB
|
||||
AhUA6V5KX3NwWdxg38etlbPYE5UVYg8wLAQUNA574qKA63TivmG62nRdl+j3wwAE
|
||||
FB5YmoWVQjQSE0+qLb3slcjYZ15YBCkEvtWvFuo/ak9ik4xGMeta972828MWZ8tH
|
||||
ehqOwzj5R0FmnJdjFtpjIQIVAOleSl9zcFncYN9ZkdRQKUCeYPwJAgEBoSwDKgAE
|
||||
qmjBVxV+PDZzFRwj4A0R1bfg5lRonKRPNAoa9nEtpL7LhB1so2K5iw==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHTMIGkBgcqhkjOPQIBMIGYAgEBMCAGByqGSM49AQECFQDpXkpfc3BZ3GDfx62V
|
||||
s9gTlRViDzAsBBQ0DnviooDrdOK+YbradF2X6PfDAAQUHliahZVCNBITT6otveyV
|
||||
yNhnXlgEKQS+1a8W6j9qT2KTjEYx61r3vbzbwxZny0d6Go7DOPlHQWacl2MW2mMh
|
||||
AhUA6V5KX3NwWdxg31mR1FApQJ5g/AkCAQEDKgAEqmjBVxV+PDZzFRwj4A0R1bfg
|
||||
5lRonKRPNAoa9nEtpL7LhB1so2K5iw==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
Field Type: prime-field
|
||||
Prime:
|
||||
00:e9:5e:4a:5f:73:70:59:dc:60:df:c7:ad:95:b3:
|
||||
d8:13:95:15:62:0f
|
||||
A:
|
||||
34:0e:7b:e2:a2:80:eb:74:e2:be:61:ba:da:74:5d:
|
||||
97:e8:f7:c3:00
|
||||
B:
|
||||
1e:58:9a:85:95:42:34:12:13:4f:aa:2d:bd:ec:95:
|
||||
c8:d8:67:5e:58
|
||||
Generator (uncompressed):
|
||||
04:be:d5:af:16:ea:3f:6a:4f:62:93:8c:46:31:eb:
|
||||
5a:f7:bd:bc:db:c3:16:67:cb:47:7a:1a:8e:c3:38:
|
||||
f9:47:41:66:9c:97:63:16:da:63:21
|
||||
Order:
|
||||
00:e9:5e:4a:5f:73:70:59:dc:60:df:59:91:d4:50:
|
||||
29:40:9e:60:fc:09
|
||||
Cofactor: 1 (0x1)
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
MIGYAgEBMCAGByqGSM49AQECFQDpXkpfc3BZ3GDfx62Vs9gTlRViDzAsBBQ0Dnvi
|
||||
ooDrdOK+YbradF2X6PfDAAQUHliahZVCNBITT6otveyVyNhnXlgEKQS+1a8W6j9q
|
||||
T2KTjEYx61r3vbzbwxZny0d6Go7DOPlHQWacl2MW2mMhAhUA6V5KX3NwWdxg31mR
|
||||
1FApQJ5g/AkCAQE=
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MEACAQEEFDT+gOUYUh+GKCVdkZ+LXnzf11SloAsGCSskAwMCCAEBAaEYAxYAA3Z8
|
||||
pjnr/9jkTGSfx6sD/HRU+eMF
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MC4wFAYHKoZIzj0CAQYJKyQDAwIIAQEBAxYAA3Z8pjnr/9jkTGSfx6sD/HRU+eMF
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MFQCAQEEFDT+gOUYUh+GKCVdkZ+LXnzf11SloAsGCSskAwMCCAEBAaEsAyoAB3Z8
|
||||
pjnr/9jkTGSfx6sD/HRU+eMFoOXUU21MYAFyilInHdjgRYnHGz8=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQEBAyoAB3Z8pjnr/9jkTGSfx6sD/HRU+eMF
|
||||
oOXUU21MYAFyilInHdjgRYnHGz8=
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MFQCAQEEFDT+gOUYUh+GKCVdkZ+LXnzf11SloAsGCSskAwMCCAEBAaEsAyoABHZ8
|
||||
pjnr/9jkTGSfx6sD/HRU+eMFoOXUU21MYAFyilInHdjgRYnHGz8=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQEBAyoABHZ8pjnr/9jkTGSfx6sD/HRU+eMF
|
||||
oOXUU21MYAFyilInHdjgRYnHGz8=
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
ASN1 OID: brainpoolP160r1
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
BgkrJAMDAggBAQE=
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIG9AgEBBBRFNof2IHDCVnAubnHCwLw/rc8fZaCBhzCBhAIBATAgBgcqhkjOPQEB
|
||||
AhUA6V5KX3NwWdxg38etlbPYE5UVYg8wLAQU6V5KX3NwWdxg38etlbPYE5UVYgwE
|
||||
FHpVa22uU1t7Ue0sTX2qegtcVfOABBUDsZmxO5s078E5fmS66wWswmX/I3gCFQDp
|
||||
Xkpfc3BZ3GDfWZHUUClAnmD8CQIBAaEYAxYAA55YcvK3z/xkFRe+XCAB5KIy3wZh
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIGrMIGQBgcqhkjOPQIBMIGEAgEBMCAGByqGSM49AQECFQDpXkpfc3BZ3GDfx62V
|
||||
s9gTlRViDzAsBBTpXkpfc3BZ3GDfx62Vs9gTlRViDAQUelVrba5TW3tR7SxNfap6
|
||||
C1xV84AEFQOxmbE7mzTvwTl+ZLrrBazCZf8jeAIVAOleSl9zcFncYN9ZkdRQKUCe
|
||||
YPwJAgEBAxYAA55YcvK3z/xkFRe+XCAB5KIy3wZh
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIHlAgEBBBRFNof2IHDCVnAubnHCwLw/rc8fZaCBmzCBmAIBATAgBgcqhkjOPQEB
|
||||
AhUA6V5KX3NwWdxg38etlbPYE5UVYg8wLAQU6V5KX3NwWdxg38etlbPYE5UVYgwE
|
||||
FHpVa22uU1t7Ue0sTX2qegtcVfOABCkHsZmxO5s078E5fmS66wWswmX/I3it1nGL
|
||||
fHwZYfCZG4QkQ3chUsngrQIVAOleSl9zcFncYN9ZkdRQKUCeYPwJAgEBoSwDKgAH
|
||||
nlhy8rfP/GQVF75cIAHkojLfBmGrBgXR3ts6e3AmV5k86uXN/c8zXQ==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHTMIGkBgcqhkjOPQIBMIGYAgEBMCAGByqGSM49AQECFQDpXkpfc3BZ3GDfx62V
|
||||
s9gTlRViDzAsBBTpXkpfc3BZ3GDfx62Vs9gTlRViDAQUelVrba5TW3tR7SxNfap6
|
||||
C1xV84AEKQexmbE7mzTvwTl+ZLrrBazCZf8jeK3WcYt8fBlh8JkbhCRDdyFSyeCt
|
||||
AhUA6V5KX3NwWdxg31mR1FApQJ5g/AkCAQEDKgAHnlhy8rfP/GQVF75cIAHkojLf
|
||||
BmGrBgXR3ts6e3AmV5k86uXN/c8zXQ==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIHlAgEBBBRFNof2IHDCVnAubnHCwLw/rc8fZaCBmzCBmAIBATAgBgcqhkjOPQEB
|
||||
AhUA6V5KX3NwWdxg38etlbPYE5UVYg8wLAQU6V5KX3NwWdxg38etlbPYE5UVYgwE
|
||||
FHpVa22uU1t7Ue0sTX2qegtcVfOABCkEsZmxO5s078E5fmS66wWswmX/I3it1nGL
|
||||
fHwZYfCZG4QkQ3chUsngrQIVAOleSl9zcFncYN9ZkdRQKUCeYPwJAgEBoSwDKgAE
|
||||
nlhy8rfP/GQVF75cIAHkojLfBmGrBgXR3ts6e3AmV5k86uXN/c8zXQ==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHTMIGkBgcqhkjOPQIBMIGYAgEBMCAGByqGSM49AQECFQDpXkpfc3BZ3GDfx62V
|
||||
s9gTlRViDzAsBBTpXkpfc3BZ3GDfx62Vs9gTlRViDAQUelVrba5TW3tR7SxNfap6
|
||||
C1xV84AEKQSxmbE7mzTvwTl+ZLrrBazCZf8jeK3WcYt8fBlh8JkbhCRDdyFSyeCt
|
||||
AhUA6V5KX3NwWdxg31mR1FApQJ5g/AkCAQEDKgAEnlhy8rfP/GQVF75cIAHkojLf
|
||||
BmGrBgXR3ts6e3AmV5k86uXN/c8zXQ==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
Field Type: prime-field
|
||||
Prime:
|
||||
00:e9:5e:4a:5f:73:70:59:dc:60:df:c7:ad:95:b3:
|
||||
d8:13:95:15:62:0f
|
||||
A:
|
||||
00:e9:5e:4a:5f:73:70:59:dc:60:df:c7:ad:95:b3:
|
||||
d8:13:95:15:62:0c
|
||||
B:
|
||||
7a:55:6b:6d:ae:53:5b:7b:51:ed:2c:4d:7d:aa:7a:
|
||||
0b:5c:55:f3:80
|
||||
Generator (uncompressed):
|
||||
04:b1:99:b1:3b:9b:34:ef:c1:39:7e:64:ba:eb:05:
|
||||
ac:c2:65:ff:23:78:ad:d6:71:8b:7c:7c:19:61:f0:
|
||||
99:1b:84:24:43:77:21:52:c9:e0:ad
|
||||
Order:
|
||||
00:e9:5e:4a:5f:73:70:59:dc:60:df:59:91:d4:50:
|
||||
29:40:9e:60:fc:09
|
||||
Cofactor: 1 (0x1)
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
MIGYAgEBMCAGByqGSM49AQECFQDpXkpfc3BZ3GDfx62Vs9gTlRViDzAsBBTpXkpf
|
||||
c3BZ3GDfx62Vs9gTlRViDAQUelVrba5TW3tR7SxNfap6C1xV84AEKQSxmbE7mzTv
|
||||
wTl+ZLrrBazCZf8jeK3WcYt8fBlh8JkbhCRDdyFSyeCtAhUA6V5KX3NwWdxg31mR
|
||||
1FApQJ5g/AkCAQE=
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MEACAQEEFCbFClfPHylYVNpL0D6AtQgT7ce9oAsGCSskAwMCCAEBAqEYAxYAA9iU
|
||||
5Hxy6dIqfyyDn2PscyULQZzr
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MC4wFAYHKoZIzj0CAQYJKyQDAwIIAQECAxYAA9iU5Hxy6dIqfyyDn2PscyULQZzr
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MFQCAQEEFCbFClfPHylYVNpL0D6AtQgT7ce9oAsGCSskAwMCCAEBAqEsAyoAB9iU
|
||||
5Hxy6dIqfyyDn2PscyULQZzrr3xdclMNFuFBOiAdjtYU+MRpQE8=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQECAyoAB9iU5Hxy6dIqfyyDn2PscyULQZzr
|
||||
r3xdclMNFuFBOiAdjtYU+MRpQE8=
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MFQCAQEEFCbFClfPHylYVNpL0D6AtQgT7ce9oAsGCSskAwMCCAEBAqEsAyoABNiU
|
||||
5Hxy6dIqfyyDn2PscyULQZzrr3xdclMNFuFBOiAdjtYU+MRpQE8=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQECAyoABNiU5Hxy6dIqfyyDn2PscyULQZzr
|
||||
r3xdclMNFuFBOiAdjtYU+MRpQE8=
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
ASN1 OID: brainpoolP160t1
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
BgkrJAMDAggBAQI=
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIHZAgEBBBhD75eEWOQzo5neRqYGRFZVLk7SFip7cwCggZswgZgCAQEwJAYHKoZI
|
||||
zj0BAQIZAMMC9B2TKjbNp6NGMJPRjbePzkdt4ahilzA0BBhqkRdAdrHg4Zw5wDH+
|
||||
hoXByuBA5caaKO8EGEaaKO98KMyj3HIdBE9ElrzKfvQUb78lyQQZA8CgZH6qtqSH
|
||||
U7AzxWyw8JAKL1xIUzdf1gIZAMMC9B2TKjbNp6NGL56ekWtb6PECmsSswQIBAaEc
|
||||
AxoAA7Bk87EwQ+DwfwstZKOigTmrGsqeN90Pog==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHDMIGkBgcqhkjOPQIBMIGYAgEBMCQGByqGSM49AQECGQDDAvQdkyo2zaejRjCT
|
||||
0Y23j85HbeGoYpcwNAQYapEXQHax4OGcOcAx/oaFwcrgQOXGmijvBBhGmijvfCjM
|
||||
o9xyHQRPRJa8yn70FG+/JckEGQPAoGR+qrakh1OwM8VssPCQCi9cSFM3X9YCGQDD
|
||||
AvQdkyo2zaejRi+enpFrW+jxAprErMECAQEDGgADsGTzsTBD4PB/Cy1ko6KBOasa
|
||||
yp433Q+i
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIIBCQIBAQQYQ++XhFjkM6OZ3kamBkRWVS5O0hYqe3MAoIGzMIGwAgEBMCQGByqG
|
||||
SM49AQECGQDDAvQdkyo2zaejRjCT0Y23j85HbeGoYpcwNAQYapEXQHax4OGcOcAx
|
||||
/oaFwcrgQOXGmijvBBhGmijvfCjMo9xyHQRPRJa8yn70FG+/JckEMQfAoGR+qrak
|
||||
h1OwM8VssPCQCi9cSFM3X9YUtpCGar1buItfSCjBSQAC5nc/ovopm48CGQDDAvQd
|
||||
kyo2zaejRi+enpFrW+jxAprErMECAQGhNAMyAAewZPOxMEPg8H8LLWSjooE5qxrK
|
||||
njfdD6JBTUlNwiO0U552Ki3/9TVYz/wcq3oq0kE=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHzMIG8BgcqhkjOPQIBMIGwAgEBMCQGByqGSM49AQECGQDDAvQdkyo2zaejRjCT
|
||||
0Y23j85HbeGoYpcwNAQYapEXQHax4OGcOcAx/oaFwcrgQOXGmijvBBhGmijvfCjM
|
||||
o9xyHQRPRJa8yn70FG+/JckEMQfAoGR+qrakh1OwM8VssPCQCi9cSFM3X9YUtpCG
|
||||
ar1buItfSCjBSQAC5nc/ovopm48CGQDDAvQdkyo2zaejRi+enpFrW+jxAprErMEC
|
||||
AQEDMgAHsGTzsTBD4PB/Cy1ko6KBOasayp433Q+iQU1JTcIjtFOediot//U1WM/8
|
||||
HKt6KtJB
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIIBCQIBAQQYQ++XhFjkM6OZ3kamBkRWVS5O0hYqe3MAoIGzMIGwAgEBMCQGByqG
|
||||
SM49AQECGQDDAvQdkyo2zaejRjCT0Y23j85HbeGoYpcwNAQYapEXQHax4OGcOcAx
|
||||
/oaFwcrgQOXGmijvBBhGmijvfCjMo9xyHQRPRJa8yn70FG+/JckEMQTAoGR+qrak
|
||||
h1OwM8VssPCQCi9cSFM3X9YUtpCGar1buItfSCjBSQAC5nc/ovopm48CGQDDAvQd
|
||||
kyo2zaejRi+enpFrW+jxAprErMECAQGhNAMyAASwZPOxMEPg8H8LLWSjooE5qxrK
|
||||
njfdD6JBTUlNwiO0U552Ki3/9TVYz/wcq3oq0kE=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHzMIG8BgcqhkjOPQIBMIGwAgEBMCQGByqGSM49AQECGQDDAvQdkyo2zaejRjCT
|
||||
0Y23j85HbeGoYpcwNAQYapEXQHax4OGcOcAx/oaFwcrgQOXGmijvBBhGmijvfCjM
|
||||
o9xyHQRPRJa8yn70FG+/JckEMQTAoGR+qrakh1OwM8VssPCQCi9cSFM3X9YUtpCG
|
||||
ar1buItfSCjBSQAC5nc/ovopm48CGQDDAvQdkyo2zaejRi+enpFrW+jxAprErMEC
|
||||
AQEDMgAEsGTzsTBD4PB/Cy1ko6KBOasayp433Q+iQU1JTcIjtFOediot//U1WM/8
|
||||
HKt6KtJB
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
Field Type: prime-field
|
||||
Prime:
|
||||
00:c3:02:f4:1d:93:2a:36:cd:a7:a3:46:30:93:d1:
|
||||
8d:b7:8f:ce:47:6d:e1:a8:62:97
|
||||
A:
|
||||
6a:91:17:40:76:b1:e0:e1:9c:39:c0:31:fe:86:85:
|
||||
c1:ca:e0:40:e5:c6:9a:28:ef
|
||||
B:
|
||||
46:9a:28:ef:7c:28:cc:a3:dc:72:1d:04:4f:44:96:
|
||||
bc:ca:7e:f4:14:6f:bf:25:c9
|
||||
Generator (uncompressed):
|
||||
04:c0:a0:64:7e:aa:b6:a4:87:53:b0:33:c5:6c:b0:
|
||||
f0:90:0a:2f:5c:48:53:37:5f:d6:14:b6:90:86:6a:
|
||||
bd:5b:b8:8b:5f:48:28:c1:49:00:02:e6:77:3f:a2:
|
||||
fa:29:9b:8f
|
||||
Order:
|
||||
00:c3:02:f4:1d:93:2a:36:cd:a7:a3:46:2f:9e:9e:
|
||||
91:6b:5b:e8:f1:02:9a:c4:ac:c1
|
||||
Cofactor: 1 (0x1)
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
MIGwAgEBMCQGByqGSM49AQECGQDDAvQdkyo2zaejRjCT0Y23j85HbeGoYpcwNAQY
|
||||
apEXQHax4OGcOcAx/oaFwcrgQOXGmijvBBhGmijvfCjMo9xyHQRPRJa8yn70FG+/
|
||||
JckEMQTAoGR+qrakh1OwM8VssPCQCi9cSFM3X9YUtpCGar1buItfSCjBSQAC5nc/
|
||||
ovopm48CGQDDAvQdkyo2zaejRi+enpFrW+jxAprErMECAQE=
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MEgCAQEEGHcCDbSTM/VbGQHkJDwWgVdUoESwPz+7J6ALBgkrJAMDAggBAQOhHAMa
|
||||
AAMHk/bu3OOq/KtKqnCg1BnJA4kH7rG3wXY=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MDIwFAYHKoZIzj0CAQYJKyQDAwIIAQEDAxoAAweT9u7c46r8q0qqcKDUGckDiQfu
|
||||
sbfBdg==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MGACAQEEGHcCDbSTM/VbGQHkJDwWgVdUoESwPz+7J6ALBgkrJAMDAggBAQOhNAMy
|
||||
AAcHk/bu3OOq/KtKqnCg1BnJA4kH7rG3wXY+r2XeSFyMm2aNFfxPVWEQBM32tGCW
|
||||
EU0=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEDAzIABweT9u7c46r8q0qqcKDUGckDiQfu
|
||||
sbfBdj6vZd5IXIybZo0V/E9VYRAEzfa0YJYRTQ==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MGACAQEEGHcCDbSTM/VbGQHkJDwWgVdUoESwPz+7J6ALBgkrJAMDAggBAQOhNAMy
|
||||
AAQHk/bu3OOq/KtKqnCg1BnJA4kH7rG3wXY+r2XeSFyMm2aNFfxPVWEQBM32tGCW
|
||||
EU0=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEDAzIABAeT9u7c46r8q0qqcKDUGckDiQfu
|
||||
sbfBdj6vZd5IXIybZo0V/E9VYRAEzfa0YJYRTQ==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
ASN1 OID: brainpoolP192r1
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
BgkrJAMDAggBAQM=
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIHZAgEBBBiwfZAsNjJ0HU7xHMz3MJl9nWUdhRINzRKggZswgZgCAQEwJAYHKoZI
|
||||
zj0BAQIZAMMC9B2TKjbNp6NGMJPRjbePzkdt4ahilzA0BBjDAvQdkyo2zaejRjCT
|
||||
0Y23j85HbeGoYpQEGBPVb/rseGgeaPnetDs1vsL7aFQuJ4l7eQQZAzrp5YyC9jww
|
||||
KC4f57v0P6csRGr29GGBKQIZAMMC9B2TKjbNp6NGL56ekWtb6PECmsSswQIBAaEc
|
||||
AxoAAq8I16z0BLE/WV74762vv9fRwHOAriO7Hw==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHDMIGkBgcqhkjOPQIBMIGYAgEBMCQGByqGSM49AQECGQDDAvQdkyo2zaejRjCT
|
||||
0Y23j85HbeGoYpcwNAQYwwL0HZMqNs2no0Ywk9GNt4/OR23hqGKUBBgT1W/67Hho
|
||||
Hmj53rQ7Nb7C+2hULieJe3kEGQM66eWMgvY8MCguH+e79D+nLERq9vRhgSkCGQDD
|
||||
AvQdkyo2zaejRi+enpFrW+jxAprErMECAQEDGgACrwjXrPQEsT9ZXvjvra+/19HA
|
||||
c4CuI7sf
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIIBCQIBAQQYsH2QLDYydB1O8RzM9zCZfZ1lHYUSDc0SoIGzMIGwAgEBMCQGByqG
|
||||
SM49AQECGQDDAvQdkyo2zaejRjCT0Y23j85HbeGoYpcwNAQYwwL0HZMqNs2no0Yw
|
||||
k9GNt4/OR23hqGKUBBgT1W/67HhoHmj53rQ7Nb7C+2hULieJe3kEMQc66eWMgvY8
|
||||
MCguH+e79D+nLERq9vRhgSkJfixWZ8IiOpAqtcpEnQCEt+Wz3nzMAckCGQDDAvQd
|
||||
kyo2zaejRi+enpFrW+jxAprErMECAQGhNAMyAAavCNes9ASxP1le+O+tr7/X0cBz
|
||||
gK4jux982thauROrZmB7Q5YVBiiXUN6kI8I9sog=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHzMIG8BgcqhkjOPQIBMIGwAgEBMCQGByqGSM49AQECGQDDAvQdkyo2zaejRjCT
|
||||
0Y23j85HbeGoYpcwNAQYwwL0HZMqNs2no0Ywk9GNt4/OR23hqGKUBBgT1W/67Hho
|
||||
Hmj53rQ7Nb7C+2hULieJe3kEMQc66eWMgvY8MCguH+e79D+nLERq9vRhgSkJfixW
|
||||
Z8IiOpAqtcpEnQCEt+Wz3nzMAckCGQDDAvQdkyo2zaejRi+enpFrW+jxAprErMEC
|
||||
AQEDMgAGrwjXrPQEsT9ZXvjvra+/19HAc4CuI7sffNrYWrkTq2Zge0OWFQYol1De
|
||||
pCPCPbKI
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIIBCQIBAQQYsH2QLDYydB1O8RzM9zCZfZ1lHYUSDc0SoIGzMIGwAgEBMCQGByqG
|
||||
SM49AQECGQDDAvQdkyo2zaejRjCT0Y23j85HbeGoYpcwNAQYwwL0HZMqNs2no0Yw
|
||||
k9GNt4/OR23hqGKUBBgT1W/67HhoHmj53rQ7Nb7C+2hULieJe3kEMQQ66eWMgvY8
|
||||
MCguH+e79D+nLERq9vRhgSkJfixWZ8IiOpAqtcpEnQCEt+Wz3nzMAckCGQDDAvQd
|
||||
kyo2zaejRi+enpFrW+jxAprErMECAQGhNAMyAASvCNes9ASxP1le+O+tr7/X0cBz
|
||||
gK4jux982thauROrZmB7Q5YVBiiXUN6kI8I9sog=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHzMIG8BgcqhkjOPQIBMIGwAgEBMCQGByqGSM49AQECGQDDAvQdkyo2zaejRjCT
|
||||
0Y23j85HbeGoYpcwNAQYwwL0HZMqNs2no0Ywk9GNt4/OR23hqGKUBBgT1W/67Hho
|
||||
Hmj53rQ7Nb7C+2hULieJe3kEMQQ66eWMgvY8MCguH+e79D+nLERq9vRhgSkJfixW
|
||||
Z8IiOpAqtcpEnQCEt+Wz3nzMAckCGQDDAvQdkyo2zaejRi+enpFrW+jxAprErMEC
|
||||
AQEDMgAErwjXrPQEsT9ZXvjvra+/19HAc4CuI7sffNrYWrkTq2Zge0OWFQYol1De
|
||||
pCPCPbKI
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
Field Type: prime-field
|
||||
Prime:
|
||||
00:c3:02:f4:1d:93:2a:36:cd:a7:a3:46:30:93:d1:
|
||||
8d:b7:8f:ce:47:6d:e1:a8:62:97
|
||||
A:
|
||||
00:c3:02:f4:1d:93:2a:36:cd:a7:a3:46:30:93:d1:
|
||||
8d:b7:8f:ce:47:6d:e1:a8:62:94
|
||||
B:
|
||||
13:d5:6f:fa:ec:78:68:1e:68:f9:de:b4:3b:35:be:
|
||||
c2:fb:68:54:2e:27:89:7b:79
|
||||
Generator (uncompressed):
|
||||
04:3a:e9:e5:8c:82:f6:3c:30:28:2e:1f:e7:bb:f4:
|
||||
3f:a7:2c:44:6a:f6:f4:61:81:29:09:7e:2c:56:67:
|
||||
c2:22:3a:90:2a:b5:ca:44:9d:00:84:b7:e5:b3:de:
|
||||
7c:cc:01:c9
|
||||
Order:
|
||||
00:c3:02:f4:1d:93:2a:36:cd:a7:a3:46:2f:9e:9e:
|
||||
91:6b:5b:e8:f1:02:9a:c4:ac:c1
|
||||
Cofactor: 1 (0x1)
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
MIGwAgEBMCQGByqGSM49AQECGQDDAvQdkyo2zaejRjCT0Y23j85HbeGoYpcwNAQY
|
||||
wwL0HZMqNs2no0Ywk9GNt4/OR23hqGKUBBgT1W/67HhoHmj53rQ7Nb7C+2hULieJ
|
||||
e3kEMQQ66eWMgvY8MCguH+e79D+nLERq9vRhgSkJfixWZ8IiOpAqtcpEnQCEt+Wz
|
||||
3nzMAckCGQDDAvQdkyo2zaejRi+enpFrW+jxAprErMECAQE=
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MEgCAQEEGBjZ7O3Fc2m0Fu4KTMQ4GqoRxgaLO8AA/6ALBgkrJAMDAggBAQShHAMa
|
||||
AANz2isBA14fA4S3qqh0P3dAkcDgiVW4KRc=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MDIwFAYHKoZIzj0CAQYJKyQDAwIIAQEEAxoAA3PaKwEDXh8DhLeqqHQ/d0CRwOCJ
|
||||
VbgpFw==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MGACAQEEGBjZ7O3Fc2m0Fu4KTMQ4GqoRxgaLO8AA/6ALBgkrJAMDAggBAQShNAMy
|
||||
AAdz2isBA14fA4S3qqh0P3dAkcDgiVW4KRe/Vm6NFOxHywQnvIJKXKqZAGccAp4G
|
||||
P1E=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEEAzIAB3PaKwEDXh8DhLeqqHQ/d0CRwOCJ
|
||||
VbgpF79Wbo0U7EfLBCe8gkpcqpkAZxwCngY/UQ==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MGACAQEEGBjZ7O3Fc2m0Fu4KTMQ4GqoRxgaLO8AA/6ALBgkrJAMDAggBAQShNAMy
|
||||
AARz2isBA14fA4S3qqh0P3dAkcDgiVW4KRe/Vm6NFOxHywQnvIJKXKqZAGccAp4G
|
||||
P1E=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEEAzIABHPaKwEDXh8DhLeqqHQ/d0CRwOCJ
|
||||
VbgpF79Wbo0U7EfLBCe8gkpcqpkAZxwCngY/UQ==
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
ASN1 OID: brainpoolP192t1
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
BgkrJAMDAggBAQQ=
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIH1AgEBBBwX+PzMj3yeR2G5a5ntRKJOzsEmJEyyVfptG7DxoIGvMIGsAgEBMCgG
|
||||
ByqGSM49AQECHQDXwTSqJkNmhioYMCV10deHsJ8HV5faifV+yMD/MDwEHGil5iyp
|
||||
zmwcKZgDpsFTC1FOGCrYsAQqWcrSn0MEHCWA9jzP5EE4hwcTsakjaeM+ITXSZtuz
|
||||
cjhsQAsEHQMNkCmtLH5c9DQII7KofcaMnkzjF0webv3uEsB9Ah0A18E0qiZDZoYq
|
||||
GDAlddD7mNEWvEtt3ryjpaeTnwIBAaEgAx4AA9FP/5WtZVx/tcT2yt9zzRUKybQ9
|
||||
J7XZE5wQM7A=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIHbMIG4BgcqhkjOPQIBMIGsAgEBMCgGByqGSM49AQECHQDXwTSqJkNmhioYMCV1
|
||||
0deHsJ8HV5faifV+yMD/MDwEHGil5iypzmwcKZgDpsFTC1FOGCrYsAQqWcrSn0ME
|
||||
HCWA9jzP5EE4hwcTsakjaeM+ITXSZtuzcjhsQAsEHQMNkCmtLH5c9DQII7KofcaM
|
||||
nkzjF0webv3uEsB9Ah0A18E0qiZDZoYqGDAlddD7mNEWvEtt3ryjpaeTnwIBAQMe
|
||||
AAPRT/+VrWVcf7XE9srfc80VCsm0PSe12ROcEDOw
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIIBLQIBAQQcF/j8zI98nkdhuWuZ7USiTs7BJiRMslX6bRuw8aCByzCByAIBATAo
|
||||
BgcqhkjOPQEBAh0A18E0qiZDZoYqGDAlddHXh7CfB1eX2on1fsjA/zA8BBxopeYs
|
||||
qc5sHCmYA6bBUwtRThgq2LAEKlnK0p9DBBwlgPY8z+RBOIcHE7GpI2njPiE10mbb
|
||||
s3I4bEALBDkHDZAprSx+XPQ0CCOyqH3GjJ5M4xdMHm797hLAfViqVvdywHJvJMa4
|
||||
nk7NrCQ1S56ZyqP203YUAs0CHQDXwTSqJkNmhioYMCV10PuY0Ra8S23evKOlp5Of
|
||||
AgEBoTwDOgAH0U//la1lXH+1xPbK33PNFQrJtD0ntdkTnBAzsFHL04D4ua2+cJ2u
|
||||
zQptM3sLWyMUp7B8Yy0EUDM=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBEzCB1AYHKoZIzj0CATCByAIBATAoBgcqhkjOPQEBAh0A18E0qiZDZoYqGDAl
|
||||
ddHXh7CfB1eX2on1fsjA/zA8BBxopeYsqc5sHCmYA6bBUwtRThgq2LAEKlnK0p9D
|
||||
BBwlgPY8z+RBOIcHE7GpI2njPiE10mbbs3I4bEALBDkHDZAprSx+XPQ0CCOyqH3G
|
||||
jJ5M4xdMHm797hLAfViqVvdywHJvJMa4nk7NrCQ1S56ZyqP203YUAs0CHQDXwTSq
|
||||
JkNmhioYMCV10PuY0Ra8S23evKOlp5OfAgEBAzoAB9FP/5WtZVx/tcT2yt9zzRUK
|
||||
ybQ9J7XZE5wQM7BRy9OA+LmtvnCdrs0KbTN7C1sjFKewfGMtBFAz
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIIBLQIBAQQcF/j8zI98nkdhuWuZ7USiTs7BJiRMslX6bRuw8aCByzCByAIBATAo
|
||||
BgcqhkjOPQEBAh0A18E0qiZDZoYqGDAlddHXh7CfB1eX2on1fsjA/zA8BBxopeYs
|
||||
qc5sHCmYA6bBUwtRThgq2LAEKlnK0p9DBBwlgPY8z+RBOIcHE7GpI2njPiE10mbb
|
||||
s3I4bEALBDkEDZAprSx+XPQ0CCOyqH3GjJ5M4xdMHm797hLAfViqVvdywHJvJMa4
|
||||
nk7NrCQ1S56ZyqP203YUAs0CHQDXwTSqJkNmhioYMCV10PuY0Ra8S23evKOlp5Of
|
||||
AgEBoTwDOgAE0U//la1lXH+1xPbK33PNFQrJtD0ntdkTnBAzsFHL04D4ua2+cJ2u
|
||||
zQptM3sLWyMUp7B8Yy0EUDM=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBEzCB1AYHKoZIzj0CATCByAIBATAoBgcqhkjOPQEBAh0A18E0qiZDZoYqGDAl
|
||||
ddHXh7CfB1eX2on1fsjA/zA8BBxopeYsqc5sHCmYA6bBUwtRThgq2LAEKlnK0p9D
|
||||
BBwlgPY8z+RBOIcHE7GpI2njPiE10mbbs3I4bEALBDkEDZAprSx+XPQ0CCOyqH3G
|
||||
jJ5M4xdMHm797hLAfViqVvdywHJvJMa4nk7NrCQ1S56ZyqP203YUAs0CHQDXwTSq
|
||||
JkNmhioYMCV10PuY0Ra8S23evKOlp5OfAgEBAzoABNFP/5WtZVx/tcT2yt9zzRUK
|
||||
ybQ9J7XZE5wQM7BRy9OA+LmtvnCdrs0KbTN7C1sjFKewfGMtBFAz
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
Field Type: prime-field
|
||||
Prime:
|
||||
00:d7:c1:34:aa:26:43:66:86:2a:18:30:25:75:d1:
|
||||
d7:87:b0:9f:07:57:97:da:89:f5:7e:c8:c0:ff
|
||||
A:
|
||||
68:a5:e6:2c:a9:ce:6c:1c:29:98:03:a6:c1:53:0b:
|
||||
51:4e:18:2a:d8:b0:04:2a:59:ca:d2:9f:43
|
||||
B:
|
||||
25:80:f6:3c:cf:e4:41:38:87:07:13:b1:a9:23:69:
|
||||
e3:3e:21:35:d2:66:db:b3:72:38:6c:40:0b
|
||||
Generator (uncompressed):
|
||||
04:0d:90:29:ad:2c:7e:5c:f4:34:08:23:b2:a8:7d:
|
||||
c6:8c:9e:4c:e3:17:4c:1e:6e:fd:ee:12:c0:7d:58:
|
||||
aa:56:f7:72:c0:72:6f:24:c6:b8:9e:4e:cd:ac:24:
|
||||
35:4b:9e:99:ca:a3:f6:d3:76:14:02:cd
|
||||
Order:
|
||||
00:d7:c1:34:aa:26:43:66:86:2a:18:30:25:75:d0:
|
||||
fb:98:d1:16:bc:4b:6d:de:bc:a3:a5:a7:93:9f
|
||||
Cofactor: 1 (0x1)
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
MIHIAgEBMCgGByqGSM49AQECHQDXwTSqJkNmhioYMCV10deHsJ8HV5faifV+yMD/
|
||||
MDwEHGil5iypzmwcKZgDpsFTC1FOGCrYsAQqWcrSn0MEHCWA9jzP5EE4hwcTsakj
|
||||
aeM+ITXSZtuzcjhsQAsEOQQNkCmtLH5c9DQII7KofcaMnkzjF0webv3uEsB9WKpW
|
||||
93LAcm8kxrieTs2sJDVLnpnKo/bTdhQCzQIdANfBNKomQ2aGKhgwJXXQ+5jRFrxL
|
||||
bd68o6Wnk58CAQE=
|
||||
-----END EC PARAMETERS-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MFACAQEEHGLi+AIOJ91qYzQXLr0H/twLaUbcfoywPWLHkTCgCwYJKyQDAwIIAQEF
|
||||
oSADHgADzOAWZitqfKqp1TdluSZoJqytmwNJ+V6Bco/GlA==
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MDYwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAx4AA8zgFmYranyqqdU3ZbkmaCasrZsD
|
||||
SflegXKPxpQ=
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MGwCAQEEHGLi+AIOJ91qYzQXLr0H/twLaUbcfoywPWLHkTCgCwYJKyQDAwIIAQEF
|
||||
oTwDOgAHzOAWZitqfKqp1TdluSZoJqytmwNJ+V6Bco/GlEHN+JmCcHkX18MK6GAv
|
||||
6Xpy1qXQZAn6iZQl0mk=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAzoAB8zgFmYranyqqdU3ZbkmaCasrZsD
|
||||
SflegXKPxpRBzfiZgnB5F9fDCuhgL+l6ctal0GQJ+omUJdJp
|
||||
-----END PUBLIC KEY-----
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
-----BEGIN EC PRIVATE KEY-----
|
||||
MGwCAQEEHGLi+AIOJ91qYzQXLr0H/twLaUbcfoywPWLHkTCgCwYJKyQDAwIIAQEF
|
||||
oTwDOgAEzOAWZitqfKqp1TdluSZoJqytmwNJ+V6Bco/GlEHN+JmCcHkX18MK6GAv
|
||||
6Xpy1qXQZAn6iZQl0mk=
|
||||
-----END EC PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAzoABMzgFmYranyqqdU3ZbkmaCasrZsD
|
||||
SflegXKPxpRBzfiZgnB5F9fDCuhgL+l6ctal0GQJ+omUJdJp
|
||||
-----END PUBLIC KEY-----
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue