Update pre9

This commit is contained in:
2018-07-06 08:41:22 +09:00
parent 854e2a6cff
commit 89af373a04
48 changed files with 5281 additions and 256 deletions
+5
View File
@@ -749,6 +749,7 @@ typedef enum OPTION_choice {
OPT_CERT2, OPT_KEY2, OPT_NEXTPROTONEG, OPT_ALPN, OPT_CERT2, OPT_KEY2, OPT_NEXTPROTONEG, OPT_ALPN,
OPT_SRTP_PROFILES, OPT_KEYMATEXPORT, OPT_KEYMATEXPORTLEN, OPT_SRTP_PROFILES, OPT_KEYMATEXPORT, OPT_KEYMATEXPORTLEN,
OPT_KEYLOG_FILE, OPT_MAX_EARLY, OPT_EARLY_DATA, OPT_S_NUM_TICKETS, OPT_KEYLOG_FILE, OPT_MAX_EARLY, OPT_EARLY_DATA, OPT_S_NUM_TICKETS,
OPT_ANTI_REPLAY, OPT_NO_ANTI_REPLAY,
OPT_R_ENUM, OPT_R_ENUM,
OPT_S_ENUM, OPT_S_ENUM,
OPT_V_ENUM, OPT_V_ENUM,
@@ -958,6 +959,8 @@ const OPTIONS s_server_options[] = {
{"early_data", OPT_EARLY_DATA, '-', "Attempt to read early data"}, {"early_data", OPT_EARLY_DATA, '-', "Attempt to read early data"},
{"num_tickets", OPT_S_NUM_TICKETS, 'n', {"num_tickets", OPT_S_NUM_TICKETS, 'n',
"The number of TLSv1.3 session tickets that a server will automatically issue" }, "The number of TLSv1.3 session tickets that a server will automatically issue" },
{"anti_replay", OPT_ANTI_REPLAY, '-', "Switch on anti-replay protection (default)"},
{"no_anti_replay", OPT_NO_ANTI_REPLAY, '-', "Switch off anti-replay protection"},
{NULL, OPT_EOF, 0, NULL} {NULL, OPT_EOF, 0, NULL}
}; };
@@ -1258,6 +1261,8 @@ int s_server_main(int argc, char *argv[])
break; break;
case OPT_S_CASES: case OPT_S_CASES:
case OPT_S_NUM_TICKETS: case OPT_S_NUM_TICKETS:
case OPT_ANTI_REPLAY:
case OPT_NO_ANTI_REPLAY:
if (ssl_args == NULL) if (ssl_args == NULL)
ssl_args = sk_OPENSSL_STRING_new_null(); ssl_args = sk_OPENSSL_STRING_new_null();
if (ssl_args == NULL if (ssl_args == NULL
+221 -74
View File
@@ -1,5 +1,5 @@
#! /usr/bin/env perl #! /usr/bin/env perl
# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. # Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
# #
# Licensed under the OpenSSL license (the "License"). You may not use # Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy # this file except in compliance with the License. You can obtain a copy
@@ -28,33 +28,32 @@
# #
# Performance in cycles per byte out of large buffer. # Performance in cycles per byte out of large buffer.
# #
# IALU/gcc 4.8(i) 1xSSSE3/SSE2 4xSSSE3 NxAVX(v) # IALU/gcc 4.8(i) 1x/2xSSSE3(ii) 4xSSSE3 NxAVX(v)
# #
# P4 9.48/+99% -/22.7(ii) - # P4 9.48/+99% - -
# Core2 7.83/+55% 7.90/8.08 4.35 # Core2 7.83/+55% 7.90/5.76 4.35
# Westmere 7.19/+50% 5.60/6.70 3.00 # Westmere 7.19/+50% 5.60/4.50 3.00
# Sandy Bridge 8.31/+42% 5.45/6.76 2.72 # Sandy Bridge 8.31/+42% 5.45/4.00 2.72
# Ivy Bridge 6.71/+46% 5.40/6.49 2.41 # Ivy Bridge 6.71/+46% 5.40/? 2.41
# Haswell 5.92/+43% 5.20/6.45 2.42 1.23 # Haswell 5.92/+43% 5.20/3.45 2.42 1.23
# Skylake[-X] 5.87/+39% 4.70/- 2.31 1.19[0.80(vi)] # Skylake[-X] 5.87/+39% 4.70/3.22 2.31 1.19[0.80(vi)]
# Silvermont 12.0/+33% 7.75/7.40 7.03(iii) # Silvermont 12.0/+33% 7.75/6.90 7.03(iii)
# Knights L 11.7/- - 9.60(iii) 0.80 # Knights L 11.7/- ? 9.60(iii) 0.80
# Goldmont 10.6/+17% 5.10/- 3.28 # Goldmont 10.6/+17% 5.10/3.52 3.28
# Sledgehammer 7.28/+52% -/14.2(ii) - # Sledgehammer 7.28/+52% - -
# Bulldozer 9.66/+28% 9.85/11.1 3.06(iv) # Bulldozer 9.66/+28% 9.85/5.35(iv) 3.06(iv)
# Ryzen 5.96/+50% 5.19/- 2.40 2.09 # Ryzen 5.96/+50% 5.19/3.00 2.40 2.09
# VIA Nano 10.5/+46% 6.72/8.60 6.05 # VIA Nano 10.5/+46% 6.72/6.88 6.05
# #
# (i) compared to older gcc 3.x one can observe >2x improvement on # (i) compared to older gcc 3.x one can observe >2x improvement on
# most platforms; # most platforms;
# (ii) as it can be seen, SSE2 performance is too low on legacy # (ii) 2xSSSE3 is code path optimized specifically for 128 bytes used
# processors; NxSSE2 results are naturally better, but not # by chacha20_poly1305_tls_cipher, results are EVP-free;
# impressively better than IALU ones, which is why you won't
# find SSE2 code below;
# (iii) this is not optimal result for Atom because of MSROM # (iii) this is not optimal result for Atom because of MSROM
# limitations, SSE2 can do better, but gain is considered too # limitations, SSE2 can do better, but gain is considered too
# low to justify the [maintenance] effort; # low to justify the [maintenance] effort;
# (iv) Bulldozer actually executes 4xXOP code path that delivers 2.20; # (iv) Bulldozer actually executes 4xXOP code path that delivers 2.20
# and 4.85 for 128-byte inputs;
# (v) 8xAVX2, 8xAVX512VL or 16xAVX512F, whichever best applicable; # (v) 8xAVX2, 8xAVX512VL or 16xAVX512F, whichever best applicable;
# (vi) even though Skylake-X can execute AVX512F code and deliver 0.57 # (vi) even though Skylake-X can execute AVX512F code and deliver 0.57
# cpb in single thread, the corresponding capability is suppressed; # cpb in single thread, the corresponding capability is suppressed;
@@ -489,6 +488,7 @@ $code.=<<___ if ($avx);
___ ___
$code.=<<___; $code.=<<___;
cmp \$128,$len # we might throw away some data, cmp \$128,$len # we might throw away some data,
je .LChaCha20_128
ja .LChaCha20_4x # but overall it won't be slower ja .LChaCha20_4x # but overall it won't be slower
.Ldo_sse3_after_all: .Ldo_sse3_after_all:
@@ -605,6 +605,172 @@ $code.=<<___;
___ ___
} }
########################################################################
# SSSE3 code path that handles 128-byte inputs
{
my ($a,$b,$c,$d,$t,$t1,$rot16,$rot24)=map("%xmm$_",(8,9,2..7));
my ($a1,$b1,$c1,$d1)=map("%xmm$_",(10,11,0,1));
sub SSSE3ROUND_2x {
&paddd ($a,$b);
&pxor ($d,$a);
&paddd ($a1,$b1);
&pxor ($d1,$a1);
&pshufb ($d,$rot16);
&pshufb($d1,$rot16);
&paddd ($c,$d);
&paddd ($c1,$d1);
&pxor ($b,$c);
&pxor ($b1,$c1);
&movdqa ($t,$b);
&psrld ($b,20);
&movdqa($t1,$b1);
&pslld ($t,12);
&psrld ($b1,20);
&por ($b,$t);
&pslld ($t1,12);
&por ($b1,$t1);
&paddd ($a,$b);
&pxor ($d,$a);
&paddd ($a1,$b1);
&pxor ($d1,$a1);
&pshufb ($d,$rot24);
&pshufb($d1,$rot24);
&paddd ($c,$d);
&paddd ($c1,$d1);
&pxor ($b,$c);
&pxor ($b1,$c1);
&movdqa ($t,$b);
&psrld ($b,25);
&movdqa($t1,$b1);
&pslld ($t,7);
&psrld ($b1,25);
&por ($b,$t);
&pslld ($t1,7);
&por ($b1,$t1);
}
my $xframe = $win64 ? 0x68 : 8;
$code.=<<___;
.type ChaCha20_128,\@function,5
.align 32
ChaCha20_128:
.cfi_startproc
.LChaCha20_128:
mov %rsp,%r9 # frame pointer
.cfi_def_cfa_register %r9
sub \$64+$xframe,%rsp
___
$code.=<<___ if ($win64);
movaps %xmm6,-0x68(%r9)
movaps %xmm7,-0x58(%r9)
movaps %xmm8,-0x48(%r9)
movaps %xmm9,-0x38(%r9)
movaps %xmm10,-0x28(%r9)
movaps %xmm11,-0x18(%r9)
.L128_body:
___
$code.=<<___;
movdqa .Lsigma(%rip),$a
movdqu ($key),$b
movdqu 16($key),$c
movdqu ($counter),$d
movdqa .Lone(%rip),$d1
movdqa .Lrot16(%rip),$rot16
movdqa .Lrot24(%rip),$rot24
movdqa $a,$a1
movdqa $a,0x00(%rsp)
movdqa $b,$b1
movdqa $b,0x10(%rsp)
movdqa $c,$c1
movdqa $c,0x20(%rsp)
paddd $d,$d1
movdqa $d,0x30(%rsp)
mov \$10,$counter # reuse $counter
jmp .Loop_128
.align 32
.Loop_128:
___
&SSSE3ROUND_2x();
&pshufd ($c,$c,0b01001110);
&pshufd ($b,$b,0b00111001);
&pshufd ($d,$d,0b10010011);
&pshufd ($c1,$c1,0b01001110);
&pshufd ($b1,$b1,0b00111001);
&pshufd ($d1,$d1,0b10010011);
&SSSE3ROUND_2x();
&pshufd ($c,$c,0b01001110);
&pshufd ($b,$b,0b10010011);
&pshufd ($d,$d,0b00111001);
&pshufd ($c1,$c1,0b01001110);
&pshufd ($b1,$b1,0b10010011);
&pshufd ($d1,$d1,0b00111001);
&dec ($counter);
&jnz (".Loop_128");
$code.=<<___;
paddd 0x00(%rsp),$a
paddd 0x10(%rsp),$b
paddd 0x20(%rsp),$c
paddd 0x30(%rsp),$d
paddd .Lone(%rip),$d1
paddd 0x00(%rsp),$a1
paddd 0x10(%rsp),$b1
paddd 0x20(%rsp),$c1
paddd 0x30(%rsp),$d1
movdqu 0x00($inp),$t
movdqu 0x10($inp),$t1
pxor $t,$a # xor with input
movdqu 0x20($inp),$t
pxor $t1,$b
movdqu 0x30($inp),$t1
pxor $t,$c
movdqu 0x40($inp),$t
pxor $t1,$d
movdqu 0x50($inp),$t1
pxor $t,$a1
movdqu 0x60($inp),$t
pxor $t1,$b1
movdqu 0x70($inp),$t1
pxor $t,$c1
pxor $t1,$d1
movdqu $a,0x00($out) # write output
movdqu $b,0x10($out)
movdqu $c,0x20($out)
movdqu $d,0x30($out)
movdqu $a1,0x40($out)
movdqu $b1,0x50($out)
movdqu $c1,0x60($out)
movdqu $d1,0x70($out)
___
$code.=<<___ if ($win64);
movaps -0x68(%r9),%xmm6
movaps -0x58(%r9),%xmm7
movaps -0x48(%r9),%xmm8
movaps -0x38(%r9),%xmm9
movaps -0x28(%r9),%xmm10
movaps -0x18(%r9),%xmm11
___
$code.=<<___;
lea (%r9),%rsp
.cfi_def_cfa_register %rsp
.L128_epilogue:
ret
.cfi_endproc
.size ChaCha20_128,.-ChaCha20_128
___
}
######################################################################## ########################################################################
# SSSE3 code path that handles longer messages. # SSSE3 code path that handles longer messages.
{ {
@@ -3674,9 +3840,9 @@ se_handler:
ret ret
.size se_handler,.-se_handler .size se_handler,.-se_handler
.type ssse3_handler,\@abi-omnipotent .type simd_handler,\@abi-omnipotent
.align 16 .align 16
ssse3_handler: simd_handler:
push %rsi push %rsi
push %rdi push %rdi
push %rbx push %rbx
@@ -3702,57 +3868,20 @@ ssse3_handler:
mov 192($context),%rax # pull context->R9 mov 192($context),%rax # pull context->R9
mov 4(%r11),%r10d # HandlerData[1] mov 4(%r11),%r10d # HandlerData[1]
mov 8(%r11),%ecx # HandlerData[2]
lea (%rsi,%r10),%r10 # epilogue label lea (%rsi,%r10),%r10 # epilogue label
cmp %r10,%rbx # context->Rip>=epilogue label cmp %r10,%rbx # context->Rip>=epilogue label
jae .Lcommon_seh_tail jae .Lcommon_seh_tail
lea -0x28(%rax),%rsi neg %rcx
lea -8(%rax,%rcx),%rsi
lea 512($context),%rdi # &context.Xmm6 lea 512($context),%rdi # &context.Xmm6
mov \$4,%ecx neg %ecx
shr \$3,%ecx
.long 0xa548f3fc # cld; rep movsq .long 0xa548f3fc # cld; rep movsq
jmp .Lcommon_seh_tail jmp .Lcommon_seh_tail
.size ssse3_handler,.-ssse3_handler .size simd_handler,.-simd_handler
.type full_handler,\@abi-omnipotent
.align 16
full_handler:
push %rsi
push %rdi
push %rbx
push %rbp
push %r12
push %r13
push %r14
push %r15
pushfq
sub \$64,%rsp
mov 120($context),%rax # pull context->Rax
mov 248($context),%rbx # pull context->Rip
mov 8($disp),%rsi # disp->ImageBase
mov 56($disp),%r11 # disp->HandlerData
mov 0(%r11),%r10d # HandlerData[0]
lea (%rsi,%r10),%r10 # prologue label
cmp %r10,%rbx # context->Rip<prologue label
jb .Lcommon_seh_tail
mov 192($context),%rax # pull context->R9
mov 4(%r11),%r10d # HandlerData[1]
lea (%rsi,%r10),%r10 # epilogue label
cmp %r10,%rbx # context->Rip>=epilogue label
jae .Lcommon_seh_tail
lea -0xa8(%rax),%rsi
lea 512($context),%rdi # &context.Xmm6
mov \$20,%ecx
.long 0xa548f3fc # cld; rep movsq
jmp .Lcommon_seh_tail
.size full_handler,.-full_handler
.section .pdata .section .pdata
.align 4 .align 4
@@ -3764,6 +3893,10 @@ full_handler:
.rva .LSEH_end_ChaCha20_ssse3 .rva .LSEH_end_ChaCha20_ssse3
.rva .LSEH_info_ChaCha20_ssse3 .rva .LSEH_info_ChaCha20_ssse3
.rva .LSEH_begin_ChaCha20_128
.rva .LSEH_end_ChaCha20_128
.rva .LSEH_info_ChaCha20_128
.rva .LSEH_begin_ChaCha20_4x .rva .LSEH_begin_ChaCha20_4x
.rva .LSEH_end_ChaCha20_4x .rva .LSEH_end_ChaCha20_4x
.rva .LSEH_info_ChaCha20_4x .rva .LSEH_info_ChaCha20_4x
@@ -3804,46 +3937,60 @@ $code.=<<___;
.LSEH_info_ChaCha20_ssse3: .LSEH_info_ChaCha20_ssse3:
.byte 9,0,0,0 .byte 9,0,0,0
.rva ssse3_handler .rva simd_handler
.rva .Lssse3_body,.Lssse3_epilogue .rva .Lssse3_body,.Lssse3_epilogue
.long 0x20,0
.LSEH_info_ChaCha20_128:
.byte 9,0,0,0
.rva simd_handler
.rva .L128_body,.L128_epilogue
.long 0x60,0
.LSEH_info_ChaCha20_4x: .LSEH_info_ChaCha20_4x:
.byte 9,0,0,0 .byte 9,0,0,0
.rva full_handler .rva simd_handler
.rva .L4x_body,.L4x_epilogue .rva .L4x_body,.L4x_epilogue
.long 0xa0,0
___ ___
$code.=<<___ if ($avx); $code.=<<___ if ($avx);
.LSEH_info_ChaCha20_4xop: .LSEH_info_ChaCha20_4xop:
.byte 9,0,0,0 .byte 9,0,0,0
.rva full_handler .rva simd_handler
.rva .L4xop_body,.L4xop_epilogue # HandlerData[] .rva .L4xop_body,.L4xop_epilogue # HandlerData[]
.long 0xa0,0
___ ___
$code.=<<___ if ($avx>1); $code.=<<___ if ($avx>1);
.LSEH_info_ChaCha20_8x: .LSEH_info_ChaCha20_8x:
.byte 9,0,0,0 .byte 9,0,0,0
.rva full_handler .rva simd_handler
.rva .L8x_body,.L8x_epilogue # HandlerData[] .rva .L8x_body,.L8x_epilogue # HandlerData[]
.long 0xa0,0
___ ___
$code.=<<___ if ($avx>2); $code.=<<___ if ($avx>2);
.LSEH_info_ChaCha20_avx512: .LSEH_info_ChaCha20_avx512:
.byte 9,0,0,0 .byte 9,0,0,0
.rva ssse3_handler .rva simd_handler
.rva .Lavx512_body,.Lavx512_epilogue # HandlerData[] .rva .Lavx512_body,.Lavx512_epilogue # HandlerData[]
.long 0x20,0
.LSEH_info_ChaCha20_avx512vl: .LSEH_info_ChaCha20_avx512vl:
.byte 9,0,0,0 .byte 9,0,0,0
.rva ssse3_handler .rva simd_handler
.rva .Lavx512vl_body,.Lavx512vl_epilogue # HandlerData[] .rva .Lavx512vl_body,.Lavx512vl_epilogue # HandlerData[]
.long 0x20,0
.LSEH_info_ChaCha20_16x: .LSEH_info_ChaCha20_16x:
.byte 9,0,0,0 .byte 9,0,0,0
.rva full_handler .rva simd_handler
.rva .L16x_body,.L16x_epilogue # HandlerData[] .rva .L16x_body,.L16x_epilogue # HandlerData[]
.long 0xa0,0
.LSEH_info_ChaCha20_8xvl: .LSEH_info_ChaCha20_8xvl:
.byte 9,0,0,0 .byte 9,0,0,0
.rva full_handler .rva simd_handler
.rva .L8xvl_body,.L8xvl_epilogue # HandlerData[] .rva .L8xvl_body,.L8xvl_epilogue # HandlerData[]
.long 0xa0,0
___ ___
} }
+7 -4
View File
@@ -292,10 +292,13 @@ int NCONF_get_number_e(const CONF *conf, const char *group, const char *name,
if (str == NULL) if (str == NULL)
return 0; return 0;
for (*result = 0; conf->meth->is_number(conf, *str);) { if (conf == NULL)
*result = (*result) * 10 + conf->meth->to_int(conf, *str); *result = strtol(str, &str, 10);
str++; else
} for (*result = 0; conf->meth->is_number(conf, *str);) {
*result = (*result) * 10 + conf->meth->to_int(conf, *str);
str++;
}
return 1; return 1;
} }
+24 -22
View File
@@ -389,30 +389,32 @@ int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
return EC_POINT_set_to_infinity(group, r); return EC_POINT_set_to_infinity(group, r);
} }
/*- if (!BN_is_zero(group->order) && !BN_is_zero(group->cofactor)) {
* Handle the common cases where the scalar is secret, enforcing a constant
* time scalar multiplication algorithm.
*/
if ((scalar != NULL) && (num == 0)) {
/*- /*-
* In this case we want to compute scalar * GeneratorPoint: this * Handle the common cases where the scalar is secret, enforcing a constant
* codepath is reached most prominently by (ephemeral) key generation * time scalar multiplication algorithm.
* of EC cryptosystems (i.e. ECDSA keygen and sign setup, ECDH
* keygen/first half), where the scalar is always secret. This is why
* we ignore if BN_FLG_CONSTTIME is actually set and we always call the
* constant time version.
*/ */
return ec_mul_consttime(group, r, scalar, NULL, ctx); if ((scalar != NULL) && (num == 0)) {
} /*-
if ((scalar == NULL) && (num == 1)) { * In this case we want to compute scalar * GeneratorPoint: this
/*- * codepath is reached most prominently by (ephemeral) key generation
* In this case we want to compute scalar * GenericPoint: this codepath * of EC cryptosystems (i.e. ECDSA keygen and sign setup, ECDH
* is reached most prominently by the second half of ECDH, where the * keygen/first half), where the scalar is always secret. This is why
* secret scalar is multiplied by the peer's public point. To protect * we ignore if BN_FLG_CONSTTIME is actually set and we always call the
* the secret scalar, we ignore if BN_FLG_CONSTTIME is actually set and * constant time version.
* we always call the constant time version. */
*/ return ec_mul_consttime(group, r, scalar, NULL, ctx);
return ec_mul_consttime(group, r, scalars[0], points[0], ctx); }
if ((scalar == NULL) && (num == 1)) {
/*-
* In this case we want to compute scalar * GenericPoint: this codepath
* is reached most prominently by the second half of ECDH, where the
* secret scalar is multiplied by the peer's public point. To protect
* the secret scalar, we ignore if BN_FLG_CONSTTIME is actually set and
* we always call the constant time version.
*/
return ec_mul_consttime(group, r, scalars[0], points[0], ctx);
}
} }
for (i = 0; i < num; i++) { for (i = 0; i < num; i++) {
+148 -10
View File
@@ -150,6 +150,7 @@ typedef struct {
EVP_CHACHA_KEY key; EVP_CHACHA_KEY key;
unsigned int nonce[12/4]; unsigned int nonce[12/4];
unsigned char tag[POLY1305_BLOCK_SIZE]; unsigned char tag[POLY1305_BLOCK_SIZE];
unsigned char tls_aad[POLY1305_BLOCK_SIZE];
struct { uint64_t aad, text; } len; struct { uint64_t aad, text; } len;
int aad, mac_inited, tag_len, nonce_len; int aad, mac_inited, tag_len, nonce_len;
size_t tls_payload_length; size_t tls_payload_length;
@@ -179,7 +180,8 @@ static int chacha20_poly1305_init_key(EVP_CIPHER_CTX *ctx,
/* pad on the left */ /* pad on the left */
if (actx->nonce_len <= CHACHA_CTR_SIZE) if (actx->nonce_len <= CHACHA_CTR_SIZE)
memcpy(temp + CHACHA_CTR_SIZE - actx->nonce_len, iv, actx->nonce_len); memcpy(temp + CHACHA_CTR_SIZE - actx->nonce_len, iv,
actx->nonce_len);
chacha_init_key(ctx, inkey, temp, enc); chacha_init_key(ctx, inkey, temp, enc);
@@ -193,23 +195,158 @@ static int chacha20_poly1305_init_key(EVP_CIPHER_CTX *ctx,
return 1; return 1;
} }
# if !defined(OPENSSL_SMALL_FOOTPRINT)
static const unsigned char zero[2 * CHACHA_BLK_SIZE] = { 0 };
static int chacha20_poly1305_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
const unsigned char *in, size_t len)
{
EVP_CHACHA_AEAD_CTX *actx = aead_data(ctx);
size_t i, tail, tohash_len, plen = actx->tls_payload_length;
unsigned char *buf, *tohash, *ctr, storage[2 * CHACHA_BLK_SIZE + 32];
if (len != plen + POLY1305_BLOCK_SIZE)
return -1;
buf = storage + ((0 - (size_t)storage) & 15); /* align */
ctr = buf + CHACHA_BLK_SIZE;
tohash = buf + CHACHA_BLK_SIZE - POLY1305_BLOCK_SIZE;
if (plen <= CHACHA_BLK_SIZE) {
actx->key.counter[0] = 0;
ChaCha20_ctr32(buf, zero, 2 * CHACHA_BLK_SIZE, actx->key.key.d,
actx->key.counter);
Poly1305_Init(POLY1305_ctx(actx), buf);
actx->key.partial_len = 0;
memcpy(tohash, actx->tls_aad, POLY1305_BLOCK_SIZE);
tohash_len = POLY1305_BLOCK_SIZE;
actx->len.aad = EVP_AEAD_TLS1_AAD_LEN;
actx->len.text = plen;
if (ctx->encrypt) {
for (i = 0; i < plen; i++) {
out[i] = ctr[i] ^= in[i];
}
} else {
for (i = 0; i < plen; i++) {
unsigned char c = in[i];
out[i] = ctr[i] ^ c;
ctr[i] = c;
}
}
in += i;
out += i;
tail = (0 - i) & (POLY1305_BLOCK_SIZE - 1);
memset(ctr + i, 0, tail);
ctr += i + tail;
tohash_len += i + tail;
} else {
actx->key.counter[0] = 0;
ChaCha20_ctr32(buf, zero, CHACHA_BLK_SIZE, actx->key.key.d,
actx->key.counter);
Poly1305_Init(POLY1305_ctx(actx), buf);
actx->key.counter[0] = 1;
actx->key.partial_len = 0;
Poly1305_Update(POLY1305_ctx(actx), actx->tls_aad, POLY1305_BLOCK_SIZE);
tohash = ctr;
tohash_len = 0;
actx->len.aad = EVP_AEAD_TLS1_AAD_LEN;
actx->len.text = plen;
if (ctx->encrypt) {
ChaCha20_ctr32(out, in, plen, actx->key.key.d, actx->key.counter);
Poly1305_Update(POLY1305_ctx(actx), out, plen);
} else {
Poly1305_Update(POLY1305_ctx(actx), in, plen);
ChaCha20_ctr32(out, in, plen, actx->key.key.d, actx->key.counter);
}
in += plen;
out += plen;
tail = (0 - plen) & (POLY1305_BLOCK_SIZE - 1);
Poly1305_Update(POLY1305_ctx(actx), zero, tail);
}
{
const union {
long one;
char little;
} is_endian = { 1 };
if (is_endian.little) {
memcpy(ctr, (unsigned char *)&actx->len, POLY1305_BLOCK_SIZE);
} else {
ctr[0] = (unsigned char)(actx->len.aad);
ctr[1] = (unsigned char)(actx->len.aad>>8);
ctr[2] = (unsigned char)(actx->len.aad>>16);
ctr[3] = (unsigned char)(actx->len.aad>>24);
ctr[4] = (unsigned char)(actx->len.aad>>32);
ctr[5] = (unsigned char)(actx->len.aad>>40);
ctr[6] = (unsigned char)(actx->len.aad>>48);
ctr[7] = (unsigned char)(actx->len.aad>>56);
ctr[8] = (unsigned char)(actx->len.text);
ctr[9] = (unsigned char)(actx->len.text>>8);
ctr[10] = (unsigned char)(actx->len.text>>16);
ctr[11] = (unsigned char)(actx->len.text>>24);
ctr[12] = (unsigned char)(actx->len.text>>32);
ctr[13] = (unsigned char)(actx->len.text>>40);
ctr[14] = (unsigned char)(actx->len.text>>48);
ctr[15] = (unsigned char)(actx->len.text>>56);
}
tohash_len += POLY1305_BLOCK_SIZE;
}
Poly1305_Update(POLY1305_ctx(actx), tohash, tohash_len);
OPENSSL_cleanse(buf, 2 * CHACHA_BLK_SIZE);
Poly1305_Final(POLY1305_ctx(actx), ctx->encrypt ? actx->tag
: tohash);
actx->tls_payload_length = NO_TLS_PAYLOAD_LENGTH;
if (ctx->encrypt) {
memcpy(out, actx->tag, POLY1305_BLOCK_SIZE);
} else {
if (CRYPTO_memcmp(tohash, in, POLY1305_BLOCK_SIZE)) {
memset(out - (len - POLY1305_BLOCK_SIZE), 0,
len - POLY1305_BLOCK_SIZE);
return -1;
}
}
return len;
}
# else
static const unsigned char zero[CHACHA_BLK_SIZE] = { 0 };
# endif
static int chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, static int chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
const unsigned char *in, size_t len) const unsigned char *in, size_t len)
{ {
EVP_CHACHA_AEAD_CTX *actx = aead_data(ctx); EVP_CHACHA_AEAD_CTX *actx = aead_data(ctx);
size_t rem, plen = actx->tls_payload_length; size_t rem, plen = actx->tls_payload_length;
static const unsigned char zero[POLY1305_BLOCK_SIZE] = { 0 };
if (!actx->mac_inited) { if (!actx->mac_inited) {
# if !defined(OPENSSL_SMALL_FOOTPRINT)
if (plen != NO_TLS_PAYLOAD_LENGTH && out != NULL)
return chacha20_poly1305_tls_cipher(ctx, out, in, len);
# endif
actx->key.counter[0] = 0; actx->key.counter[0] = 0;
memset(actx->key.buf, 0, sizeof(actx->key.buf)); ChaCha20_ctr32(actx->key.buf, zero, CHACHA_BLK_SIZE,
ChaCha20_ctr32(actx->key.buf, actx->key.buf, CHACHA_BLK_SIZE,
actx->key.key.d, actx->key.counter); actx->key.key.d, actx->key.counter);
Poly1305_Init(POLY1305_ctx(actx), actx->key.buf); Poly1305_Init(POLY1305_ctx(actx), actx->key.buf);
actx->key.counter[0] = 1; actx->key.counter[0] = 1;
actx->key.partial_len = 0; actx->key.partial_len = 0;
actx->len.aad = actx->len.text = 0; actx->len.aad = actx->len.text = 0;
actx->mac_inited = 1; actx->mac_inited = 1;
if (plen != NO_TLS_PAYLOAD_LENGTH) {
Poly1305_Update(POLY1305_ctx(actx), actx->tls_aad,
EVP_AEAD_TLS1_AAD_LEN);
actx->len.aad = EVP_AEAD_TLS1_AAD_LEN;
actx->aad = 1;
}
} }
if (in) { /* aad or text */ if (in) { /* aad or text */
@@ -341,6 +478,7 @@ static int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,
actx->tag_len = 0; actx->tag_len = 0;
actx->nonce_len = 12; actx->nonce_len = 12;
actx->tls_payload_length = NO_TLS_PAYLOAD_LENGTH; actx->tls_payload_length = NO_TLS_PAYLOAD_LENGTH;
memset(actx->tls_aad, 0, POLY1305_BLOCK_SIZE);
return 1; return 1;
case EVP_CTRL_COPY: case EVP_CTRL_COPY:
@@ -393,18 +531,18 @@ static int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,
return 0; return 0;
{ {
unsigned int len; unsigned int len;
unsigned char *aad = ptr, temp[POLY1305_BLOCK_SIZE]; unsigned char *aad = ptr;
memcpy(actx->tls_aad, ptr, EVP_AEAD_TLS1_AAD_LEN);
len = aad[EVP_AEAD_TLS1_AAD_LEN - 2] << 8 | len = aad[EVP_AEAD_TLS1_AAD_LEN - 2] << 8 |
aad[EVP_AEAD_TLS1_AAD_LEN - 1]; aad[EVP_AEAD_TLS1_AAD_LEN - 1];
aad = actx->tls_aad;
if (!ctx->encrypt) { if (!ctx->encrypt) {
if (len < POLY1305_BLOCK_SIZE) if (len < POLY1305_BLOCK_SIZE)
return 0; return 0;
len -= POLY1305_BLOCK_SIZE; /* discount attached tag */ len -= POLY1305_BLOCK_SIZE; /* discount attached tag */
memcpy(temp, aad, EVP_AEAD_TLS1_AAD_LEN - 2); aad[EVP_AEAD_TLS1_AAD_LEN - 2] = (unsigned char)(len >> 8);
aad = temp; aad[EVP_AEAD_TLS1_AAD_LEN - 1] = (unsigned char)len;
temp[EVP_AEAD_TLS1_AAD_LEN - 2] = (unsigned char)(len >> 8);
temp[EVP_AEAD_TLS1_AAD_LEN - 1] = (unsigned char)len;
} }
actx->tls_payload_length = len; actx->tls_payload_length = len;
@@ -415,7 +553,7 @@ static int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,
actx->key.counter[2] = actx->nonce[1] ^ CHACHA_U8TOU32(aad); actx->key.counter[2] = actx->nonce[1] ^ CHACHA_U8TOU32(aad);
actx->key.counter[3] = actx->nonce[2] ^ CHACHA_U8TOU32(aad+4); actx->key.counter[3] = actx->nonce[2] ^ CHACHA_U8TOU32(aad+4);
actx->mac_inited = 0; actx->mac_inited = 0;
chacha20_poly1305_cipher(ctx, NULL, aad, EVP_AEAD_TLS1_AAD_LEN);
return POLY1305_BLOCK_SIZE; /* tag length */ return POLY1305_BLOCK_SIZE; /* tag length */
} }
+2 -5
View File
@@ -145,6 +145,8 @@ $code=<<___;
.text .text
#if defined(__thumb2__) || defined(__clang__) #if defined(__thumb2__) || defined(__clang__)
.syntax unified .syntax unified
#define ldrplb ldrbpl
#define ldrneb ldrbne
#endif #endif
#if defined(__thumb2__) #if defined(__thumb2__)
.thumb .thumb
@@ -152,11 +154,6 @@ $code=<<___;
.code 32 .code 32
#endif #endif
#ifdef __clang__
#define ldrplb ldrbpl
#define ldrneb ldrbne
#endif
.type rem_4bit,%object .type rem_4bit,%object
.align 5 .align 5
rem_4bit: rem_4bit:
+1
View File
@@ -488,6 +488,7 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
char *dekinfostart, c; char *dekinfostart, c;
cipher->cipher = NULL; cipher->cipher = NULL;
memset(cipher->iv, 0, sizeof(cipher->iv));
if ((header == NULL) || (*header == '\0') || (*header == '\n')) if ((header == NULL) || (*header == '\0') || (*header == '\n'))
return 1; return 1;
+1 -1
View File
@@ -877,7 +877,7 @@ my %globals;
$var=~s/^(0b[0-1]+)/oct($1)/eig; $var=~s/^(0b[0-1]+)/oct($1)/eig;
$var=~s/^0x([0-9a-f]+)/0$1h/ig if ($masm); $var=~s/^0x([0-9a-f]+)/0$1h/ig if ($masm);
if ($sz eq "D" && ($current_segment=~/.[px]data/ || $dir eq ".rva")) if ($sz eq "D" && ($current_segment=~/.[px]data/ || $dir eq ".rva"))
{ $var=~s/([_a-z\$\@][_a-z0-9\$\@]*)/$nasm?"$1 wrt ..imagebase":"imagerel $1"/egi; } { $var=~s/^([_a-z\$\@][_a-z0-9\$\@]*)/$nasm?"$1 wrt ..imagebase":"imagerel $1"/egi; }
$var; $var;
}; };
+3 -1
View File
@@ -7,7 +7,9 @@
* https://www.openssl.org/source/license.html * https://www.openssl.org/source/license.html
*/ */
#define _GNU_SOURCE #ifndef _GNU_SOURCE
# define _GNU_SOURCE
#endif
#include "e_os.h" #include "e_os.h"
#include <stdio.h> #include <stdio.h>
#include "internal/cryptlib.h" #include "internal/cryptlib.h"
-1
View File
@@ -335,7 +335,6 @@ ___
} }
{ {
$code.=<<___; $code.=<<___;
.globl KeccakF1600
.type KeccakF1600,\@function .type KeccakF1600,\@function
.align 32 .align 32
KeccakF1600: KeccakF1600:
-1
View File
@@ -344,7 +344,6 @@ $code.=<<___;
ret ret
.size __KeccakF1600,.-__KeccakF1600 .size __KeccakF1600,.-__KeccakF1600
.globl KeccakF1600
.type KeccakF1600,\@abi-omnipotent .type KeccakF1600,\@abi-omnipotent
.align 32 .align 32
KeccakF1600: KeccakF1600:
+1 -1
View File
@@ -113,7 +113,7 @@ TLSv1.2 and below ciphersuites that have been configured. The format for this
list is a simple colon (":") separated list of TLSv1.3 ciphersuite names. By list is a simple colon (":") separated list of TLSv1.3 ciphersuite names. By
default this value is: default this value is:
"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256" TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
=item B<cipherlist> =item B<cipherlist>
+4 -3
View File
@@ -83,7 +83,8 @@ B<openssl> B<cms>
[B<-signer file>] [B<-signer file>]
[B<-recip file>] [B<-recip file>]
[B<-keyid>] [B<-keyid>]
[B<-receipt_request_all -receipt_request_first>] [B<-receipt_request_all>]
[B<-receipt_request_first>]
[B<-receipt_request_from emailaddress>] [B<-receipt_request_from emailaddress>]
[B<-receipt_request_to emailaddress>] [B<-receipt_request_to emailaddress>]
[B<-receipt_request_print>] [B<-receipt_request_print>]
@@ -304,7 +305,7 @@ default digest algorithm for the signing key will be used (usually SHA1).
The encryption algorithm to use. For example triple DES (168 bits) - B<-des3> The encryption algorithm to use. For example triple DES (168 bits) - B<-des3>
or 256 bit AES - B<-aes256>. Any standard algorithm name (as used by the or 256 bit AES - B<-aes256>. Any standard algorithm name (as used by the
EVP_get_cipherbyname() function) can also be used preceded by a dash, for EVP_get_cipherbyname() function) can also be used preceded by a dash, for
example B<-aes-128-cbc>. See L<B<enc>|enc(1)> for a list of ciphers example B<-aes-128-cbc>. See L<enc(1)> for a list of ciphers
supported by your version of OpenSSL. supported by your version of OpenSSL.
If not specified triple DES is used. Only used with B<-encrypt> and If not specified triple DES is used. Only used with B<-encrypt> and
@@ -403,7 +404,7 @@ Use subject key identifier to identify certificates instead of issuer name and
serial number. The supplied certificate B<must> include a subject key serial number. The supplied certificate B<must> include a subject key
identifier extension. Supported by B<-sign> and B<-encrypt> options. identifier extension. Supported by B<-sign> and B<-encrypt> options.
=item B<-receipt_request_all -receipt_request_first> =item B<-receipt_request_all>, B<-receipt_request_first>
For B<-sign> option include a signed receipt request. Indicate requests should For B<-sign> option include a signed receipt request. Indicate requests should
be provided by all recipient or first tier recipients (those mailed directly be provided by all recipient or first tier recipients (those mailed directly
+1 -1
View File
@@ -89,7 +89,7 @@ filename.
The output file password source. For more information about the format of B<arg> The output file password source. For more information about the format of B<arg>
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>. see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea> =item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
These options encrypt the private key with the specified These options encrypt the private key with the specified
cipher before outputting it. A pass phrase is prompted for. cipher before outputting it. A pass phrase is prompted for.
+1 -1
View File
@@ -45,7 +45,7 @@ Print out a usage message.
Output the key to the specified file. If this argument is not specified then Output the key to the specified file. If this argument is not specified then
standard output is used. standard output is used.
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea> =item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
These options encrypt the private key with specified These options encrypt the private key with specified
cipher before outputting it. A pass phrase is prompted for. cipher before outputting it. A pass phrase is prompted for.
+6 -6
View File
@@ -261,13 +261,13 @@ Encrypt output private key using 128 bit AES and the passphrase "hello":
Generate a 2048 bit RSA key using 3 as the public exponent: Generate a 2048 bit RSA key using 3 as the public exponent:
openssl genpkey -algorithm RSA -out key.pem -pkeyopt rsa_keygen_bits:2048 \ openssl genpkey -algorithm RSA -out key.pem \
-pkeyopt rsa_keygen_pubexp:3 -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:3
Generate 2048 bit DSA parameters: Generate 2048 bit DSA parameters:
openssl genpkey -genparam -algorithm DSA -out dsap.pem \ openssl genpkey -genparam -algorithm DSA -out dsap.pem \
-pkeyopt dsa_paramgen_bits:2048 -pkeyopt dsa_paramgen_bits:2048
Generate DSA key from parameters: Generate DSA key from parameters:
@@ -276,13 +276,13 @@ Generate DSA key from parameters:
Generate 2048 bit DH parameters: Generate 2048 bit DH parameters:
openssl genpkey -genparam -algorithm DH -out dhp.pem \ openssl genpkey -genparam -algorithm DH -out dhp.pem \
-pkeyopt dh_paramgen_prime_len:2048 -pkeyopt dh_paramgen_prime_len:2048
Generate 2048 bit X9.42 DH parameters: Generate 2048 bit X9.42 DH parameters:
openssl genpkey -genparam -algorithm DH -out dhpx.pem \ openssl genpkey -genparam -algorithm DH -out dhpx.pem \
-pkeyopt dh_paramgen_prime_len:2048 \ -pkeyopt dh_paramgen_prime_len:2048 \
-pkeyopt dh_paramgen_type:1 -pkeyopt dh_paramgen_type:1
Output RFC5114 2048 bit DH parameters with 224 bit subgroup: Output RFC5114 2048 bit DH parameters with 224 bit subgroup:
+1 -1
View File
@@ -53,7 +53,7 @@ standard output is used.
The output file password source. For more information about the format The output file password source. For more information about the format
of B<arg> see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>. of B<arg> see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea> =item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
These options encrypt the private key with specified These options encrypt the private key with specified
cipher before outputting it. If none of these options is cipher before outputting it. If none of these options is
+61 -62
View File
@@ -77,161 +77,160 @@ B<list>, or B<no->I<XXX> itself.)
=over 4 =over 4
=item L<B<asn1parse>|asn1parse(1)> =item B<asn1parse>
Parse an ASN.1 sequence. Parse an ASN.1 sequence.
=item L<B<ca>|ca(1)> =item B<ca>
Certificate Authority (CA) Management. Certificate Authority (CA) Management.
=item L<B<ciphers>|ciphers(1)> =item B<ciphers>
Cipher Suite Description Determination. Cipher Suite Description Determination.
=item L<B<cms>|cms(1)> =item B<cms>
CMS (Cryptographic Message Syntax) utility. CMS (Cryptographic Message Syntax) utility.
=item L<B<crl>|crl(1)> =item B<crl>
Certificate Revocation List (CRL) Management. Certificate Revocation List (CRL) Management.
=item L<B<crl2pkcs7>|crl2pkcs7(1)> =item B<crl2pkcs7>
CRL to PKCS#7 Conversion. CRL to PKCS#7 Conversion.
=item L<B<dgst>|dgst(1)> =item B<dgst>
Message Digest Calculation. Message Digest Calculation.
=item B<dh> =item B<dh>
Diffie-Hellman Parameter Management. Diffie-Hellman Parameter Management.
Obsoleted by L<B<dhparam>|dhparam(1)>. Obsoleted by L<dhparam(1)>.
=item L<B<dhparam>|dhparam(1)> =item B<dhparam>
Generation and Management of Diffie-Hellman Parameters. Superseded by Generation and Management of Diffie-Hellman Parameters. Superseded by
L<B<genpkey>|genpkey(1)> and L<B<pkeyparam>|pkeyparam(1)>. L<genpkey(1)> and L<pkeyparam(1)>.
=item L<B<dsa>|dsa(1)> =item B<dsa>
DSA Data Management. DSA Data Management.
=item L<B<dsaparam>|dsaparam(1)> =item B<dsaparam>
DSA Parameter Generation and Management. Superseded by DSA Parameter Generation and Management. Superseded by
L<B<genpkey>|genpkey(1)> and L<B<pkeyparam>|pkeyparam(1)>. L<genpkey(1)> and L<pkeyparam(1)>.
=item L<B<ec>|ec(1)> =item B<ec>
EC (Elliptic curve) key processing. EC (Elliptic curve) key processing.
=item L<B<ecparam>|ecparam(1)> =item B<ecparam>
EC parameter manipulation and generation. EC parameter manipulation and generation.
=item L<B<enc>|enc(1)> =item B<enc>
Encoding with Ciphers. Encoding with Ciphers.
=item L<B<engine>|engine(1)> =item B<engine>
Engine (loadable module) information and manipulation. Engine (loadable module) information and manipulation.
=item L<B<errstr>|errstr(1)> =item B<errstr>
Error Number to Error String Conversion. Error Number to Error String Conversion.
=item B<gendh> =item B<gendh>
Generation of Diffie-Hellman Parameters. Generation of Diffie-Hellman Parameters.
Obsoleted by L<B<dhparam>|dhparam(1)>. Obsoleted by L<dhparam(1)>.
=item L<B<gendsa>|gendsa(1)> =item B<gendsa>
Generation of DSA Private Key from Parameters. Superseded by Generation of DSA Private Key from Parameters. Superseded by
L<B<genpkey>|genpkey(1)> and L<B<pkey>|pkey(1)>. L<genpkey(1)> and L<pkey(1)>.
=item L<B<genpkey>|genpkey(1)> =item B<genpkey>
Generation of Private Key or Parameters. Generation of Private Key or Parameters.
=item L<B<genrsa>|genrsa(1)> =item B<genrsa>
Generation of RSA Private Key. Superseded by L<B<genpkey>|genpkey(1)>. Generation of RSA Private Key. Superseded by L<genpkey(1)>.
=item L<B<nseq>|nseq(1)> =item B<nseq>
Create or examine a Netscape certificate sequence. Create or examine a Netscape certificate sequence.
=item L<B<ocsp>|ocsp(1)> =item B<ocsp>
Online Certificate Status Protocol utility. Online Certificate Status Protocol utility.
=item L<B<passwd>|passwd(1)> =item B<passwd>
Generation of hashed passwords. Generation of hashed passwords.
=item L<B<pkcs12>|pkcs12(1)> =item B<pkcs12>
PKCS#12 Data Management. PKCS#12 Data Management.
=item L<B<pkcs7>|pkcs7(1)> =item B<pkcs7>
PKCS#7 Data Management. PKCS#7 Data Management.
=item L<B<pkcs8>|pkcs8(1)> =item B<pkcs8>
PKCS#8 format private key conversion tool. PKCS#8 format private key conversion tool.
=item L<B<pkey>|pkey(1)> =item B<pkey>
Public and private key management. Public and private key management.
=item L<B<pkeyparam>|pkeyparam(1)> =item B<pkeyparam>
Public key algorithm parameter management. Public key algorithm parameter management.
=item L<B<pkeyutl>|pkeyutl(1)> =item B<pkeyutl>
Public key algorithm cryptographic operation utility. Public key algorithm cryptographic operation utility.
=item L<B<prime>|prime(1)> =item B<prime>
Compute prime numbers. Compute prime numbers.
=item L<B<rand>|rand(1)> =item B<rand>
Generate pseudo-random bytes. Generate pseudo-random bytes.
=item L<B<rehash>|rehash(1)> =item B<rehash>
Create symbolic links to certificate and CRL files named by the hash values. Create symbolic links to certificate and CRL files named by the hash values.
=item L<B<req>|req(1)> =item B<req>
PKCS#10 X.509 Certificate Signing Request (CSR) Management. PKCS#10 X.509 Certificate Signing Request (CSR) Management.
=item L<B<rsa>|rsa(1)> =item B<rsa>
RSA key management. RSA key management.
=item B<rsautl>
=item L<B<rsautl>|rsautl(1)>
RSA utility for signing, verification, encryption, and decryption. Superseded RSA utility for signing, verification, encryption, and decryption. Superseded
by L<B<pkeyutl>|pkeyutl(1)>. by L<pkeyutl(1)>.
=item L<B<s_client>|s_client(1)> =item B<s_client>
This implements a generic SSL/TLS client which can establish a transparent This implements a generic SSL/TLS client which can establish a transparent
connection to a remote server speaking SSL/TLS. It's intended for testing connection to a remote server speaking SSL/TLS. It's intended for testing
purposes only and provides only rudimentary interface functionality but purposes only and provides only rudimentary interface functionality but
internally uses mostly all functionality of the OpenSSL B<ssl> library. internally uses mostly all functionality of the OpenSSL B<ssl> library.
=item L<B<s_server>|s_server(1)> =item B<s_server>
This implements a generic SSL/TLS server which accepts connections from remote This implements a generic SSL/TLS server which accepts connections from remote
clients speaking SSL/TLS. It's intended for testing purposes only and provides clients speaking SSL/TLS. It's intended for testing purposes only and provides
@@ -240,47 +239,47 @@ functionality of the OpenSSL B<ssl> library. It provides both an own command
line oriented protocol for testing SSL functions and a simple HTTP response line oriented protocol for testing SSL functions and a simple HTTP response
facility to emulate an SSL/TLS-aware webserver. facility to emulate an SSL/TLS-aware webserver.
=item L<B<s_time>|s_time(1)> =item B<s_time>
SSL Connection Timer. SSL Connection Timer.
=item L<B<sess_id>|sess_id(1)> =item B<sess_id>
SSL Session Data Management. SSL Session Data Management.
=item L<B<smime>|smime(1)> =item B<smime>
S/MIME mail processing. S/MIME mail processing.
=item L<B<speed>|speed(1)> =item B<speed>
Algorithm Speed Measurement. Algorithm Speed Measurement.
=item L<B<spkac>|spkac(1)> =item B<spkac>
SPKAC printing and generating utility. SPKAC printing and generating utility.
=item L<B<srp>|srp(1)> =item B<srp>
Maintain SRP password file. Maintain SRP password file.
=item L<B<storeutl>|storeutl(1)> =item B<storeutl>
Utility to list and display certificates, keys, CRLs, etc. Utility to list and display certificates, keys, CRLs, etc.
=item L<B<ts>|ts(1)> =item B<ts>
Time Stamping Authority tool (client/server). Time Stamping Authority tool (client/server).
=item L<B<verify>|verify(1)> =item B<verify>
X.509 Certificate Verification. X.509 Certificate Verification.
=item L<B<version>|version(1)> =item B<version>
OpenSSL Version Information. OpenSSL Version Information.
=item L<B<x509>|x509(1)> =item B<x509>
X.509 Certificate Data Management. X.509 Certificate Data Management.
@@ -376,31 +375,31 @@ SM3 Digest
Base64 Encoding Base64 Encoding
=item B<bf bf-cbc bf-cfb bf-ecb bf-ofb> =item B<bf>, B<bf-cbc>, B<bf-cfb>, B<bf-ecb>, B<bf-ofb>
Blowfish Cipher Blowfish Cipher
=item B<cast cast-cbc> =item B<cast>, B<cast-cbc>
CAST Cipher CAST Cipher
=item B<cast5-cbc cast5-cfb cast5-ecb cast5-ofb> =item B<cast5-cbc>, B<cast5-cfb>, B<cast5-ecb>, B<cast5-ofb>
CAST5 Cipher CAST5 Cipher
=item B<des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ofb> =item B<des>, B<des-cbc>, B<des-cfb>, B<des-ecb>, B<des-ede>, B<des-ede-cbc>, B<des-ede-cfb>, B<des-ede-ofb>, B<des-ofb>
DES Cipher DES Cipher
=item B<des3 desx des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb> =item B<des3>, B<desx>, B<des-ede3>, B<des-ede3-cbc>, B<des-ede3-cfb>, B<des-ede3-ofb>
Triple-DES Cipher Triple-DES Cipher
=item B<idea idea-cbc idea-cfb idea-ecb idea-ofb> =item B<idea>, B<idea-cbc>, B<idea-cfb>, B<idea-ecb>, B<idea-ofb>
IDEA Cipher IDEA Cipher
=item B<rc2 rc2-cbc rc2-cfb rc2-ecb rc2-ofb> =item B<rc2>, B<rc2-cbc>, B<rc2-cfb>, B<rc2-ecb>, B<rc2-ofb>
RC2 Cipher RC2 Cipher
@@ -408,7 +407,7 @@ RC2 Cipher
RC4 Cipher RC4 Cipher
=item B<rc5 rc5-cbc rc5-cfb rc5-ecb rc5-ofb> =item B<rc5>, B<rc5-cbc>, B<rc5-cfb>, B<rc5-ecb>, B<rc5-ofb>
RC5 Cipher RC5 Cipher
+8 -4
View File
@@ -108,13 +108,17 @@ This can be used with a subsequent B<-rand> flag.
=head1 EXAMPLES =head1 EXAMPLES
B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>. % openssl passwd -crypt -salt xx password
xxj31ZMTZzkVA
B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>. % openssl passwd -1 -salt xxxxxxxx password
$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.
B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>. % openssl passwd -apr1 -salt xxxxxxxx password
$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0
B<openssl passwd -aixmd5 -salt xxxxxxxx password> prints B<xxxxxxxx$8Oaipk/GPKhC64w/YVeFD/>. % openssl passwd -aixmd5 -salt xxxxxxxx password
xxxxxxxx$8Oaipk/GPKhC64w/YVeFD/
=head1 COPYRIGHT =head1 COPYRIGHT
+2 -2
View File
@@ -223,14 +223,14 @@ below.
These algorithms were included in the original PKCS#5 v1.5 specification. These algorithms were included in the original PKCS#5 v1.5 specification.
They only offer 56 bits of protection since they both use DES. They only offer 56 bits of protection since they both use DES.
=item B<PBE-SHA1-RC2-64 PBE-MD2-RC2-64 PBE-MD5-RC2-64 PBE-SHA1-DES> =item B<PBE-SHA1-RC2-64>, B<PBE-MD2-RC2-64>, B<PBE-MD5-RC2-64>, B<PBE-SHA1-DES>
These algorithms are not mentioned in the original PKCS#5 v1.5 specification These algorithms are not mentioned in the original PKCS#5 v1.5 specification
but they use the same key derivation algorithm and are supported by some but they use the same key derivation algorithm and are supported by some
software. They are mentioned in PKCS#5 v2.0. They use either 64 bit RC2 or software. They are mentioned in PKCS#5 v2.0. They use either 64 bit RC2 or
56 bit DES. 56 bit DES.
=item B<PBE-SHA1-RC4-128 PBE-SHA1-RC4-40 PBE-SHA1-3DES PBE-SHA1-2DES PBE-SHA1-RC2-128 PBE-SHA1-RC2-40> =item B<PBE-SHA1-RC4-128>, B<PBE-SHA1-RC4-40>, B<PBE-SHA1-3DES>, B<PBE-SHA1-2DES>, B<PBE-SHA1-RC2-128>, B<PBE-SHA1-RC2-40>
These algorithms use the PKCS#12 password based encryption algorithm and These algorithms use the PKCS#12 password based encryption algorithm and
allow strong encryption algorithms like triple DES or 128 bit RC2 to be used. allow strong encryption algorithms like triple DES or 128 bit RC2 to be used.
+1 -1
View File
@@ -90,7 +90,7 @@ filename.
The output file password source. For more information about the format of B<arg> The output file password source. For more information about the format of B<arg>
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>. see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea> =item B<-aes128>, B<-aes192>, B<-aes256>, B<-aria128>, B<-aria192>, B<-aria256>, B<-camellia128>, B<-camellia192>, B<-camellia256>, B<-des>, B<-des3>, B<-idea>
These options encrypt the private key with the specified These options encrypt the private key with the specified
cipher before outputting it. A pass phrase is prompted for. cipher before outputting it. A pass phrase is prompted for.
+1 -1
View File
@@ -804,7 +804,7 @@ information whenever a session is renegotiated.
=head1 SEE ALSO =head1 SEE ALSO
L<SSL_CONF_cmd(3)>, L<sess_id(1)>, L<s_server(1)>, L<ciphers(1)>, L<SSL_CONF_cmd(3)>, L<sess_id(1)>, L<s_server(1)>, L<ciphers(1)>,
L<SSL_CTX_set_max_send_fragment(3)>, L<SSL_CTX_set_split_send_fragment(3)> L<SSL_CTX_set_max_send_fragment(3)>, L<SSL_CTX_set_split_send_fragment(3)>,
L<SSL_CTX_set_max_pipelines(3)> L<SSL_CTX_set_max_pipelines(3)>
=head1 HISTORY =head1 HISTORY
+13 -1
View File
@@ -180,6 +180,8 @@ B<openssl> B<s_server>
[B<-keylogfile outfile>] [B<-keylogfile outfile>]
[B<-max_early_data int>] [B<-max_early_data int>]
[B<-early_data>] [B<-early_data>]
[B<-anti_replay>]
[B<-no_anti_replay>]
=head1 DESCRIPTION =head1 DESCRIPTION
@@ -709,6 +711,15 @@ greater than or equal to 0.
Accept early data where possible. Accept early data where possible.
=item B<-anti_replay>, B<-no_anti_replay>
Switches replay protection on or off, respectively. Replay protection is on by
default unless overridden by a configuration file. When it is on, OpenSSL will
automatically detect if a session ticket has been used more than once, TLSv1.3
has been negotiated, and early data is enabled on the server. A full handshake
is forced if a session ticket is used a second or subsequent time. Any early
data that was sent will be rejected.
=back =back
=head1 CONNECTED COMMANDS =head1 CONNECTED COMMANDS
@@ -798,7 +809,8 @@ unknown cipher suites a client says it supports.
=head1 SEE ALSO =head1 SEE ALSO
L<SSL_CONF_cmd(3)>, L<sess_id(1)>, L<s_client(1)>, L<ciphers(1)> L<SSL_CONF_cmd(3)>, L<sess_id(1)>, L<s_client(1)>, L<ciphers(1)>
L<SSL_CTX_set_max_send_fragment(3)>, L<SSL_CTX_set_split_send_fragment(3)> L<SSL_CTX_set_max_send_fragment(3)>,
L<SSL_CTX_set_split_send_fragment(3)>,
L<SSL_CTX_set_max_pipelines(3)> L<SSL_CTX_set_max_pipelines(3)>
=head1 HISTORY =head1 HISTORY
+6 -5
View File
@@ -116,11 +116,12 @@ Create an SPKAC using the challenge string "hello":
Example of an SPKAC, (long lines split up for clarity): Example of an SPKAC, (long lines split up for clarity):
SPKAC=MIG5MGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA1cCoq2Wa3Ixs47uI7F\ SPKAC=MIG5MGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA\
PVwHVIPDx5yso105Y6zpozam135a8R0CpoRvkkigIyXfcCjiVi5oWk+6FfPaD03u\ 1cCoq2Wa3Ixs47uI7FPVwHVIPDx5yso105Y6zpozam135a\
PFoQIDAQABFgVoZWxsbzANBgkqhkiG9w0BAQQFAANBAFpQtY/FojdwkJh1bEIYuc\ 8R0CpoRvkkigIyXfcCjiVi5oWk+6FfPaD03uPFoQIDAQAB\
2EeM2KHTWPEepWYeawvHD0gQ3DngSC75YCWnnDdq+NQ3F+X4deMx9AaEglZtULwV\ FgVoZWxsbzANBgkqhkiG9w0BAQQFAANBAFpQtY/FojdwkJ\
4= h1bEIYuc2EeM2KHTWPEepWYeawvHD0gQ3DngSC75YCWnnD\
dq+NQ3F+X4deMx9AaEglZtULwV4=
=head1 NOTES =head1 NOTES
+6 -4
View File
@@ -557,10 +557,12 @@ OID section of the config file):
Before generating a response a signing certificate must be created for Before generating a response a signing certificate must be created for
the TSA that contains the B<timeStamping> critical extended key usage extension the TSA that contains the B<timeStamping> critical extended key usage extension
without any other key usage extensions. You can add the without any other key usage extensions. You can add this line to the
'extendedKeyUsage = critical,timeStamping' line to the user certificate section user certificate section of the config file to generate a proper certificate;
of the config file to generate a proper certificate. See L<req(1)>,
L<ca(1)>, L<x509(1)> for instructions. The examples extendedKeyUsage = critical,timeStamping
See L<req(1)>, L<ca(1)>, and L<x509(1)> for instructions. The examples
below assume that cacert.pem contains the certificate of the CA, below assume that cacert.pem contains the certificate of the CA,
tsacert.pem is the signing certificate issued by cacert.pem and tsacert.pem is the signing certificate issued by cacert.pem and
tsakey.pem is the private key of the TSA. tsakey.pem is the private key of the TSA.
+50 -2
View File
@@ -3,11 +3,13 @@
=head1 NAME =head1 NAME
EVP_MD_CTX_new, EVP_MD_CTX_reset, EVP_MD_CTX_free, EVP_MD_CTX_copy_ex, EVP_MD_CTX_new, EVP_MD_CTX_reset, EVP_MD_CTX_free, EVP_MD_CTX_copy_ex,
EVP_MD_CTX_ctrl, EVP_DigestInit_ex, EVP_DigestInit, EVP_DigestUpdate, EVP_MD_CTX_ctrl, EVP_MD_CTX_set_flags, EVP_MD_CTX_clear_flags,
EVP_MD_CTX_test_flags, EVP_DigestInit_ex, EVP_DigestInit, EVP_DigestUpdate,
EVP_DigestFinal_ex, EVP_DigestFinalXOF, EVP_DigestFinal, EVP_DigestFinal_ex, EVP_DigestFinalXOF, EVP_DigestFinal,
EVP_MD_CTX_copy, EVP_MD_type, EVP_MD_pkey_type, EVP_MD_size, EVP_MD_CTX_copy, EVP_MD_type, EVP_MD_pkey_type, EVP_MD_size,
EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size, EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size,
EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_md_null, EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_MD_CTX_md_data,
EVP_md_null,
EVP_get_digestbyname, EVP_get_digestbynid, EVP_get_digestbyname, EVP_get_digestbynid,
EVP_get_digestbyobj - EVP digest routines EVP_get_digestbyobj - EVP digest routines
@@ -19,6 +21,9 @@ EVP_get_digestbyobj - EVP digest routines
int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); int EVP_MD_CTX_reset(EVP_MD_CTX *ctx);
void EVP_MD_CTX_free(EVP_MD_CTX *ctx); void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
void EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void* p2); void EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void* p2);
void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags);
void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags);
int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags);
int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt);
@@ -41,6 +46,7 @@ EVP_get_digestbyobj - EVP digest routines
int EVP_MD_CTX_size(const EVP_MD *ctx); int EVP_MD_CTX_size(const EVP_MD *ctx);
int EVP_MD_CTX_block_size(const EVP_MD *ctx); int EVP_MD_CTX_block_size(const EVP_MD *ctx);
int EVP_MD_CTX_type(const EVP_MD *ctx); int EVP_MD_CTX_type(const EVP_MD *ctx);
void *EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx);
const EVP_MD *EVP_md_null(void); const EVP_MD *EVP_md_null(void);
@@ -72,6 +78,10 @@ Cleans up digest context B<ctx> and frees up the space allocated to it.
Performs digest-specific control actions on context B<ctx>. Performs digest-specific control actions on context B<ctx>.
=item EVP_MD_CTX_set_flags(), EVP_MD_CTX_clear_flags(), EVP_MD_CTX_test_flags()
Sets, clears and tests B<ctx> flags. See L</FLAGS> below for more information.
=item EVP_DigestInit_ex() =item EVP_DigestInit_ex()
Sets up digest context B<ctx> to use a digest B<type> from ENGINE B<impl>. Sets up digest context B<ctx> to use a digest B<type> from ENGINE B<impl>.
@@ -140,6 +150,12 @@ Return the NID of the OBJECT IDENTIFIER representing the given message digest
when passed an B<EVP_MD> structure. For example, C<EVP_MD_type(EVP_sha1())> when passed an B<EVP_MD> structure. For example, C<EVP_MD_type(EVP_sha1())>
returns B<NID_sha1>. This function is normally used when setting ASN1 OIDs. returns B<NID_sha1>. This function is normally used when setting ASN1 OIDs.
=item EVP_MD_CTX_md_data()
Return the digest method private data for the passed B<EVP_MD_CTX>.
The space is allocated by OpenSSL and has the size originally set with
EVP_MD_meth_set_app_datasize().
=item EVP_MD_CTX_md() =item EVP_MD_CTX_md()
Returns the B<EVP_MD> structure corresponding to the passed B<EVP_MD_CTX>. Returns the B<EVP_MD> structure corresponding to the passed B<EVP_MD_CTX>.
@@ -165,6 +181,38 @@ B<ASN1_OBJECT> structure respectively.
=back =back
=head1 FLAGS
EVP_MD_CTX_set_flags(), EVP_MD_CTX_clear_flags() and EVP_MD_CTX_test_flags()
can be used the manipulate and test these B<EVP_MD_CTX> flags:
=over 4
=item EVP_MD_CTX_FLAG_ONESHOT
This flag instructs the digest to optimize for one update only, if possible.
=for comment EVP_MD_CTX_FLAG_CLEANED is internal, don't mention it
=for comment EVP_MD_CTX_FLAG_REUSE is internal, don't mention it
=for comment We currently avoid documenting flags that are only bit holder:
EVP_MD_CTX_FLAG_NON_FIPS_ALLOW, EVP_MD_CTX_FLAGS_PAD_*
=item EVP_MD_CTX_FLAG_NO_INIT
This flag instructs EVP_DigestInit() and similar not to initialise the
implementation specific data.
=item EVP_MD_CTX_FLAG_FINALISE
Some functions such as EVP_DigestSign only finalise copies of internal
contexts so additional data can be included after the finalisation call.
This is inefficient if this functionality is not required, and can be
disabled with this flag.
=back
=head1 RETURN VALUES =head1 RETURN VALUES
=over 4 =over 4
+21
View File
@@ -211,6 +211,18 @@ that there will be no forward secrecy for the resumed session.
enables strict mode protocol handling. Equivalent to setting enables strict mode protocol handling. Equivalent to setting
B<SSL_CERT_FLAG_TLS_STRICT>. B<SSL_CERT_FLAG_TLS_STRICT>.
=item B<-anti_replay>, B<-no_anti_replay>
Switches replay protection, on or off respectively. With replay protection on,
OpenSSL will automatically detect if a session ticket has been used more than
once, TLSv1.3 has been negotiated, and early data is enabled on the server. A
full handshake is forced if a session ticket is used a second or subsequent
time. Anti-Replay is on by default unless overridden by a configuration file and
is only used by servers. Anti-replay measures are required for compliance with
the TLSv1.3 specification. Some applications may be able to mitigate the replay
risks in other ways and in such cases the built-in OpenSSL functionality is not
required. Switching off anti-replay is equivalent to B<SSL_OP_NO_ANTI_REPLAY>.
=back =back
=head1 SUPPORTED CONFIGURATION FILE COMMANDS =head1 SUPPORTED CONFIGURATION FILE COMMANDS
@@ -441,6 +453,15 @@ middleboxes that do not understand TLSv1.3 will not drop the connection. This
option is set by default. A future version of OpenSSL may not set this by option is set by default. A future version of OpenSSL may not set this by
default. Equivalent to B<SSL_OP_ENABLE_MIDDLEBOX_COMPAT>. default. Equivalent to B<SSL_OP_ENABLE_MIDDLEBOX_COMPAT>.
B<AntiReplay>: If set then OpenSSL will automatically detect if a session ticket
has been used more than once, TLSv1.3 has been negotiated, and early data is
enabled on the server. A full handshake is forced if a session ticket is used a
second or subsequent time. This option is set by default and is only used by
servers. Anti-replay measures are required to comply with the TLSv1.3
specification. Some applications may be able to mitigate the replay risks in
other ways and in such cases the built-in OpenSSL functionality is not required.
Disabling anti-replay is equivalent to setting B<SSL_OP_NO_ANTI_REPLAY>.
=item B<VerifyMode> =item B<VerifyMode>
The B<value> argument is a comma separated list of flags to set. The B<value> argument is a comma separated list of flags to set.
+11
View File
@@ -226,6 +226,17 @@ this option is set or not CCS messages received from the peer will always be
ignored in TLSv1.3. This option is set by default. To switch it off use ignored in TLSv1.3. This option is set by default. To switch it off use
SSL_clear_options(). A future version of OpenSSL may not set this by default. SSL_clear_options(). A future version of OpenSSL may not set this by default.
=item SSL_OP_NO_ANTI_REPLAY
By default, when a server is configured for early data (i.e., max_early_data > 0),
OpenSSL will switch on replay protection. See L<SSL_read_early_data(3)> for a
description of the replay protection feature. Anti-replay measures are required
to comply with the TLSv1.3 specification. Some applications may be able to
mitigate the replay risks in other ways and in such cases the built in OpenSSL
functionality is not required. Those applications can turn this feature off by
setting this option. This is a server-side opton only. It is ignored by
clients.
=back =back
The following options no longer have any effect but their identifiers are The following options no longer have any effect but their identifiers are
+34 -1
View File
@@ -10,7 +10,10 @@ SSL_SESSION_get_max_early_data,
SSL_SESSION_set_max_early_data, SSL_SESSION_set_max_early_data,
SSL_write_early_data, SSL_write_early_data,
SSL_read_early_data, SSL_read_early_data,
SSL_get_early_data_status SSL_get_early_data_status,
SSL_allow_early_data_cb_fn,
SSL_CTX_set_allow_early_data_cb,
SSL_set_allow_early_data_cb
- functions for sending and receiving early data - functions for sending and receiving early data
=head1 SYNOPSIS =head1 SYNOPSIS
@@ -30,6 +33,16 @@ SSL_get_early_data_status
int SSL_get_early_data_status(const SSL *s); int SSL_get_early_data_status(const SSL *s);
typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg);
void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx,
SSL_allow_early_data_cb_fn cb,
void *arg);
void SSL_set_allow_early_data_cb(SSL *s,
SSL_allow_early_data_cb_fn cb,
void *arg);
=head1 DESCRIPTION =head1 DESCRIPTION
These functions are used to send and receive early data where TLSv1.3 has been These functions are used to send and receive early data where TLSv1.3 has been
@@ -186,6 +199,20 @@ In the event that the current maximum early data setting for the server is
different to that originally specified in a session that a client is resuming different to that originally specified in a session that a client is resuming
with then the lower of the two values will apply. with then the lower of the two values will apply.
Some server applications may wish to have more control over whether early data
is accepted or not, for example to mitigate replay risks (see L</REPLAY PROTECTION>
below) or to decline early_data when the server is heavily loaded. The functions
SSL_CTX_set_allow_early_data_cb() and SSL_set_allow_early_data_cb() set a
callback which is called at a point in the handshake immediately before a
decision is made to accept or reject early data. The callback is provided with a
pointer to the user data argument that was provided when the callback was first
set. Returning 1 from the callback will allow early data and returning 0 will
reject it. Note that the OpenSSL library may reject early data for other reasons
in which case this callback will not get called. Notably, the built-in replay
protection feature will still be used even if a callback is present unless it
has been explicitly disabled using the SSL_OP_NO_ANTI_REPLAY option. See
L</REPLAY PROTECTION> below.
=head1 NOTES =head1 NOTES
The whole purpose of early data is to enable a client to start sending data to The whole purpose of early data is to enable a client to start sending data to
@@ -252,6 +279,12 @@ The OpenSSL replay protection does not apply to external Pre Shared Keys (PSKs)
(e.g. see SSL_CTX_set_psk_find_session_callback(3)). Therefore extreme caution (e.g. see SSL_CTX_set_psk_find_session_callback(3)). Therefore extreme caution
should be applied when combining external PSKs with early data. should be applied when combining external PSKs with early data.
Some applications may mitigate the replay risks in other ways. For those
applications it is possible to turn off the built-in replay protection feature
using the B<SSL_OP_NO_ANTI_REPLAY> option. See L<SSL_CTX_set_options(3)> for
details. Applications can also set a callback to make decisions about accepting
early data or not. See SSL_CTX_set_allow_early_data_cb() above for details.
=head1 RETURN VALUES =head1 RETURN VALUES
SSL_write_early_data() returns 1 for success or 0 for failure. In the event of a SSL_write_early_data() returns 1 for success or 0 for failure. In the event of a
+2
View File
@@ -28,6 +28,8 @@ PKCS7_ISSUER_AND_SERIAL_digest
int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type,
unsigned char *md, unsigned int *len); unsigned char *md, unsigned int *len);
#include <openssl/pkcs7.h>
int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,
const EVP_MD *type, unsigned char *md, const EVP_MD *type, unsigned char *md,
unsigned int *len); unsigned int *len);
+14 -2
View File
@@ -368,6 +368,12 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx);
*/ */
# define SSL_OP_TLS_ROLLBACK_BUG 0x00800000U # define SSL_OP_TLS_ROLLBACK_BUG 0x00800000U
/*
* Switches off automatic TLSv1.3 anti-replay protection for early data. This
* is a server-side option only (no effect on the client).
*/
# define SSL_OP_NO_ANTI_REPLAY 0x01000000U
# define SSL_OP_NO_SSLv3 0x02000000U # define SSL_OP_NO_SSLv3 0x02000000U
# define SSL_OP_NO_TLSv1 0x04000000U # define SSL_OP_NO_TLSv1 0x04000000U
# define SSL_OP_NO_TLSv1_2 0x08000000U # define SSL_OP_NO_TLSv1_2 0x08000000U
@@ -2383,13 +2389,19 @@ int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len);
extern const char SSL_version_str[]; extern const char SSL_version_str[];
typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us);
void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb);
typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg);
void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx,
SSL_allow_early_data_cb_fn cb,
void *arg);
void SSL_set_allow_early_data_cb(SSL *s,
SSL_allow_early_data_cb_fn cb,
void *arg);
# ifdef __cplusplus # ifdef __cplusplus
} }
# endif # endif
+9 -2
View File
@@ -383,7 +383,8 @@ static int cmd_Options(SSL_CONF_CTX *cctx, const char *value)
SSL_FLAG_TBL("NoRenegotiation", SSL_OP_NO_RENEGOTIATION), SSL_FLAG_TBL("NoRenegotiation", SSL_OP_NO_RENEGOTIATION),
SSL_FLAG_TBL("AllowNoDHEKEX", SSL_OP_ALLOW_NO_DHE_KEX), SSL_FLAG_TBL("AllowNoDHEKEX", SSL_OP_ALLOW_NO_DHE_KEX),
SSL_FLAG_TBL("PrioritizeChaCha", SSL_OP_PRIORITIZE_CHACHA), SSL_FLAG_TBL("PrioritizeChaCha", SSL_OP_PRIORITIZE_CHACHA),
SSL_FLAG_TBL("MiddleboxCompat", SSL_OP_ENABLE_MIDDLEBOX_COMPAT) SSL_FLAG_TBL("MiddleboxCompat", SSL_OP_ENABLE_MIDDLEBOX_COMPAT),
SSL_FLAG_TBL_INV("AntiReplay", SSL_OP_NO_ANTI_REPLAY)
}; };
if (value == NULL) if (value == NULL)
return -3; return -3;
@@ -626,6 +627,8 @@ static const ssl_conf_cmd_tbl ssl_conf_cmds[] = {
SSL_CONF_CMD_SWITCH("prioritize_chacha", SSL_CONF_FLAG_SERVER), SSL_CONF_CMD_SWITCH("prioritize_chacha", SSL_CONF_FLAG_SERVER),
SSL_CONF_CMD_SWITCH("strict", 0), SSL_CONF_CMD_SWITCH("strict", 0),
SSL_CONF_CMD_SWITCH("no_middlebox", 0), SSL_CONF_CMD_SWITCH("no_middlebox", 0),
SSL_CONF_CMD_SWITCH("anti_replay", SSL_CONF_FLAG_SERVER),
SSL_CONF_CMD_SWITCH("no_anti_replay", SSL_CONF_FLAG_SERVER),
SSL_CONF_CMD_STRING(SignatureAlgorithms, "sigalgs", 0), SSL_CONF_CMD_STRING(SignatureAlgorithms, "sigalgs", 0),
SSL_CONF_CMD_STRING(ClientSignatureAlgorithms, "client_sigalgs", 0), SSL_CONF_CMD_STRING(ClientSignatureAlgorithms, "client_sigalgs", 0),
SSL_CONF_CMD_STRING(Curves, "curves", 0), SSL_CONF_CMD_STRING(Curves, "curves", 0),
@@ -671,7 +674,7 @@ static const ssl_conf_cmd_tbl ssl_conf_cmds[] = {
SSL_CONF_TYPE_FILE), SSL_CONF_TYPE_FILE),
#endif #endif
SSL_CONF_CMD_STRING(RecordPadding, "record_padding", 0), SSL_CONF_CMD_STRING(RecordPadding, "record_padding", 0),
SSL_CONF_CMD_STRING(NumTickets, "num_tickets", SSL_CONF_FLAG_SERVER) SSL_CONF_CMD_STRING(NumTickets, "num_tickets", SSL_CONF_FLAG_SERVER),
}; };
/* Supported switches: must match order of switches in ssl_conf_cmds */ /* Supported switches: must match order of switches in ssl_conf_cmds */
@@ -704,6 +707,10 @@ static const ssl_switch_tbl ssl_cmd_switches[] = {
{SSL_CERT_FLAG_TLS_STRICT, SSL_TFLAG_CERT}, /* strict */ {SSL_CERT_FLAG_TLS_STRICT, SSL_TFLAG_CERT}, /* strict */
/* no_middlebox */ /* no_middlebox */
{SSL_OP_ENABLE_MIDDLEBOX_COMPAT, SSL_TFLAG_INV}, {SSL_OP_ENABLE_MIDDLEBOX_COMPAT, SSL_TFLAG_INV},
/* anti_replay */
{SSL_OP_NO_ANTI_REPLAY, SSL_TFLAG_INV},
/* no_anti_replay */
{SSL_OP_NO_ANTI_REPLAY, 0},
}; };
static int ssl_conf_cmd_skip_prefix(SSL_CONF_CTX *cctx, const char **pcmd) static int ssl_conf_cmd_skip_prefix(SSL_CONF_CTX *cctx, const char **pcmd)
+21 -1
View File
@@ -805,6 +805,9 @@ SSL *SSL_new(SSL_CTX *ctx)
s->key_update = SSL_KEY_UPDATE_NONE; s->key_update = SSL_KEY_UPDATE_NONE;
s->allow_early_data_cb = ctx->allow_early_data_cb;
s->allow_early_data_cb_data = ctx->allow_early_data_cb_data;
if (!s->method->ssl_new(s)) if (!s->method->ssl_new(s))
goto err; goto err;
@@ -3447,7 +3450,8 @@ void ssl_update_cache(SSL *s, int mode)
if ((i & SSL_SESS_CACHE_NO_INTERNAL_STORE) == 0 if ((i & SSL_SESS_CACHE_NO_INTERNAL_STORE) == 0
&& (!SSL_IS_TLS13(s) && (!SSL_IS_TLS13(s)
|| !s->server || !s->server
|| s->max_early_data > 0 || (s->max_early_data > 0
&& (s->options & SSL_OP_NO_ANTI_REPLAY) == 0)
|| s->session_ctx->remove_session_cb != NULL || s->session_ctx->remove_session_cb != NULL
|| (s->options & SSL_OP_NO_TICKET) != 0)) || (s->options & SSL_OP_NO_TICKET) != 0))
SSL_CTX_add_session(s->session_ctx, s->session); SSL_CTX_add_session(s->session_ctx, s->session);
@@ -5550,3 +5554,19 @@ int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx,
ctx->ticket_cb_data = arg; ctx->ticket_cb_data = arg;
return 1; return 1;
} }
void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx,
SSL_allow_early_data_cb_fn cb,
void *arg)
{
ctx->allow_early_data_cb = cb;
ctx->allow_early_data_cb_data = arg;
}
void SSL_set_allow_early_data_cb(SSL *s,
SSL_allow_early_data_cb_fn cb,
void *arg)
{
s->allow_early_data_cb = cb;
s->allow_early_data_cb_data = arg;
}
+9
View File
@@ -1084,6 +1084,10 @@ struct ssl_ctx_st {
/* The number of TLS1.3 tickets to automatically send */ /* The number of TLS1.3 tickets to automatically send */
size_t num_tickets; size_t num_tickets;
/* Callback to determine if early_data is acceptable or not */
SSL_allow_early_data_cb_fn allow_early_data_cb;
void *allow_early_data_cb_data;
}; };
struct ssl_st { struct ssl_st {
@@ -1242,6 +1246,7 @@ struct ssl_st {
# endif # endif
SSL_psk_find_session_cb_func psk_find_session_cb; SSL_psk_find_session_cb_func psk_find_session_cb;
SSL_psk_use_session_cb_func psk_use_session_cb; SSL_psk_use_session_cb_func psk_use_session_cb;
SSL_CTX *ctx; SSL_CTX *ctx;
/* Verified chain of peer */ /* Verified chain of peer */
STACK_OF(X509) *verified_chain; STACK_OF(X509) *verified_chain;
@@ -1461,6 +1466,10 @@ struct ssl_st {
size_t sent_tickets; size_t sent_tickets;
/* The next nonce value to use when we send a ticket on this connection */ /* The next nonce value to use when we send a ticket on this connection */
uint64_t next_ticket_nonce; uint64_t next_ticket_nonce;
/* Callback to determine if early_data is acceptable or not */
SSL_allow_early_data_cb_fn allow_early_data_cb;
void *allow_early_data_cb_data;
}; };
/* /*
+2 -1
View File
@@ -33,10 +33,11 @@ int SSL_SESSION_print(BIO *bp, const SSL_SESSION *x)
{ {
size_t i; size_t i;
const char *s; const char *s;
int istls13 = (x->ssl_version == TLS1_3_VERSION); int istls13;
if (x == NULL) if (x == NULL)
goto err; goto err;
istls13 = (x->ssl_version == TLS1_3_VERSION);
if (BIO_puts(bp, "SSL-Session:\n") <= 0) if (BIO_puts(bp, "SSL-Session:\n") <= 0)
goto err; goto err;
s = ssl_protocol_to_string(x->ssl_version); s = ssl_protocol_to_string(x->ssl_version);
+4 -1
View File
@@ -1622,7 +1622,10 @@ static int final_early_data(SSL *s, unsigned int context, int sent)
|| s->session->ext.tick_identity != 0 || s->session->ext.tick_identity != 0
|| s->early_data_state != SSL_EARLY_DATA_ACCEPTING || s->early_data_state != SSL_EARLY_DATA_ACCEPTING
|| !s->ext.early_data_ok || !s->ext.early_data_ok
|| s->hello_retry_request != SSL_HRR_NONE) { || s->hello_retry_request != SSL_HRR_NONE
|| (s->ctx->allow_early_data_cb != NULL
&& !s->ctx->allow_early_data_cb(s,
s->ctx->allow_early_data_cb_data))) {
s->ext.early_data = SSL_EARLY_DATA_REJECTED; s->ext.early_data = SSL_EARLY_DATA_REJECTED;
} else { } else {
s->ext.early_data = SSL_EARLY_DATA_ACCEPTED; s->ext.early_data = SSL_EARLY_DATA_ACCEPTED;
+3 -1
View File
@@ -1165,7 +1165,8 @@ int tls_parse_ctos_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x,
* is no point in using full stateless tickets. * is no point in using full stateless tickets.
*/ */
if ((s->options & SSL_OP_NO_TICKET) != 0 if ((s->options & SSL_OP_NO_TICKET) != 0
|| s->max_early_data > 0) || (s->max_early_data > 0
&& (s->options & SSL_OP_NO_ANTI_REPLAY) == 0))
ret = tls_get_stateful_ticket(s, &identity, &sess); ret = tls_get_stateful_ticket(s, &identity, &sess);
else else
ret = tls_decrypt_ticket(s, PACKET_data(&identity), ret = tls_decrypt_ticket(s, PACKET_data(&identity),
@@ -1189,6 +1190,7 @@ int tls_parse_ctos_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x,
/* Check for replay */ /* Check for replay */
if (s->max_early_data > 0 if (s->max_early_data > 0
&& (s->options & SSL_OP_NO_ANTI_REPLAY) == 0
&& !SSL_CTX_remove_session(s->session_ctx, sess)) { && !SSL_CTX_remove_session(s->session_ctx, sess)) {
SSL_SESSION_free(sess); SSL_SESSION_free(sess);
sess = NULL; sess = NULL;
+12
View File
@@ -2591,6 +2591,7 @@ MSG_PROCESS_RETURN tls_process_new_session_ticket(SSL *s, PACKET *pkt)
*/ */
if (SSL_IS_TLS13(s) || s->session->session_id_length > 0) { if (SSL_IS_TLS13(s) || s->session->session_id_length > 0) {
SSL_SESSION *new_sess; SSL_SESSION *new_sess;
/* /*
* We reused an existing session, so we need to replace it with a new * We reused an existing session, so we need to replace it with a new
* one * one
@@ -2602,6 +2603,16 @@ MSG_PROCESS_RETURN tls_process_new_session_ticket(SSL *s, PACKET *pkt)
goto err; goto err;
} }
if ((s->session_ctx->session_cache_mode & SSL_SESS_CACHE_CLIENT) != 0
&& !SSL_IS_TLS13(s)) {
/*
* In TLSv1.2 and below the arrival of a new tickets signals that
* any old ticket we were using is now out of date, so we remove the
* old session from the cache. We carry on if this fails
*/
SSL_CTX_remove_session(s->session_ctx, s->session);
}
SSL_SESSION_free(s->session); SSL_SESSION_free(s->session);
s->session = new_sess; s->session = new_sess;
} }
@@ -2671,6 +2682,7 @@ MSG_PROCESS_RETURN tls_process_new_session_ticket(SSL *s, PACKET *pkt)
goto err; goto err;
} }
s->session->session_id_length = sess_len; s->session->session_id_length = sess_len;
s->session->not_resumable = 0;
/* This is a standalone message in TLSv1.3, so there is no more to read */ /* This is a standalone message in TLSv1.3, so there is no more to read */
if (SSL_IS_TLS13(s)) { if (SSL_IS_TLS13(s)) {
+14 -5
View File
@@ -1068,12 +1068,21 @@ WORK_STATE tls_finish_handshake(SSL *s, WORK_STATE wst, int clearbufs, int stop)
dtls1_start_timer(s); dtls1_start_timer(s);
} }
} else { } else {
/* if (SSL_IS_TLS13(s)) {
* In TLSv1.3 we update the cache as part of processing the /*
* NewSessionTicket * We encourage applications to only use TLSv1.3 tickets once,
*/ * so we remove this one from the cache.
if (!SSL_IS_TLS13(s)) */
if ((s->session_ctx->session_cache_mode
& SSL_SESS_CACHE_CLIENT) != 0)
SSL_CTX_remove_session(s->session_ctx, s->session);
} else {
/*
* In TLSv1.3 we update the cache as part of processing the
* NewSessionTicket
*/
ssl_update_cache(s, SSL_SESS_CACHE_CLIENT); ssl_update_cache(s, SSL_SESS_CACHE_CLIENT);
}
if (s->hit) if (s->hit)
CRYPTO_atomic_add(&s->session_ctx->stats.sess_hit, 1, &discard, CRYPTO_atomic_add(&s->session_ctx->stats.sess_hit, 1, &discard,
s->session_ctx->lock); s->session_ctx->lock);
+7 -6
View File
@@ -3130,14 +3130,13 @@ static int tls_process_cke_dhe(SSL *s, PACKET *pkt)
SSL_R_BN_LIB); SSL_R_BN_LIB);
goto err; goto err;
} }
cdh = EVP_PKEY_get0_DH(ckey); cdh = EVP_PKEY_get0_DH(ckey);
pub_key = BN_bin2bn(data, i, NULL); pub_key = BN_bin2bn(data, i, NULL);
if (pub_key == NULL || cdh == NULL || !DH_set0_key(cdh, pub_key, NULL)) {
if (pub_key == NULL || !DH_set0_key(cdh, pub_key, NULL)) {
SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_PROCESS_CKE_DHE, SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_PROCESS_CKE_DHE,
ERR_R_INTERNAL_ERROR); ERR_R_INTERNAL_ERROR);
if (pub_key != NULL) BN_free(pub_key);
BN_free(pub_key);
goto err; goto err;
} }
@@ -4088,8 +4087,10 @@ int tls_construct_new_session_ticket(SSL *s, WPACKET *pkt)
* SSL_OP_NO_TICKET is set - we are caching tickets anyway so there * SSL_OP_NO_TICKET is set - we are caching tickets anyway so there
* is no point in using full stateless tickets. * is no point in using full stateless tickets.
*/ */
if (((s->options & SSL_OP_NO_TICKET) != 0 || s->max_early_data > 0) if (SSL_IS_TLS13(s)
&& SSL_IS_TLS13(s)) { && ((s->options & SSL_OP_NO_TICKET) != 0
|| (s->max_early_data > 0
&& (s->options & SSL_OP_NO_ANTI_REPLAY) == 0))) {
if (!construct_stateful_ticket(s, pkt, age_add_u.age_add, tick_nonce)) { if (!construct_stateful_ticket(s, pkt, age_add_u.age_add, tick_nonce)) {
/* SSLfatal() already called */ /* SSLfatal() already called */
goto err; goto err;
+6 -3
View File
@@ -2309,13 +2309,16 @@ DH *ssl_get_auto_dh(SSL *s)
if (dhp == NULL) if (dhp == NULL)
return NULL; return NULL;
g = BN_new(); g = BN_new();
if (g != NULL) if (g == NULL || !BN_set_word(g, 2)) {
BN_set_word(g, 2); DH_free(dhp);
BN_free(g);
return NULL;
}
if (dh_secbits >= 192) if (dh_secbits >= 192)
p = BN_get_rfc3526_prime_8192(NULL); p = BN_get_rfc3526_prime_8192(NULL);
else else
p = BN_get_rfc3526_prime_3072(NULL); p = BN_get_rfc3526_prime_3072(NULL);
if (p == NULL || g == NULL || !DH_set0_pqg(dhp, p, NULL, g)) { if (p == NULL || !DH_set0_pqg(dhp, p, NULL, g)) {
DH_free(dhp); DH_free(dhp);
BN_free(p); BN_free(p);
BN_free(g); BN_free(g);
+31
View File
@@ -123,6 +123,36 @@ static int test_load_config(void)
return 1; return 1;
} }
static int test_check_null_numbers(void)
{
#if defined(_BSD_SOURCE) \
|| (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L) \
|| (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 600)
long val = 0;
/* Verify that a NULL config with a present environment variable returns
* success and the value.
*/
if (!TEST_int_eq(setenv("FNORD", "123", 1), 0)
|| !TEST_true(NCONF_get_number(NULL, "missing", "FNORD", &val))
|| !TEST_long_eq(val, 123)) {
TEST_note("environment variable with NULL conf failed");
return 0;
}
/*
* Verify that a NULL config with a missing envrionment variable returns
* a failure code.
*/
if (!TEST_int_eq(unsetenv("FNORD"), 0)
|| !TEST_false(NCONF_get_number(NULL, "missing", "FNORD", &val))) {
TEST_note("missing environment variable with NULL conf failed");
return 0;
}
#endif
return 1;
}
int setup_tests(void) int setup_tests(void)
{ {
const char *conf_file; const char *conf_file;
@@ -150,6 +180,7 @@ int setup_tests(void)
change_path(conf_file); change_path(conf_file);
ADD_TEST(test_load_config); ADD_TEST(test_load_config);
ADD_TEST(test_check_null_numbers);
return 1; return 1;
} }
+1 -1
View File
@@ -15,7 +15,7 @@ use OpenSSL::Test qw/:DEFAULT data_file/;
setup("test_evp"); setup("test_evp");
my @files = ( "evpciph.txt", "evpdigest.txt", "evpencod.txt", "evpkdf.txt", my @files = ( "evpciph.txt", "evpdigest.txt", "evpencod.txt", "evpkdf.txt",
"evpmac.txt", "evppbe.txt", "evppkey.txt" ); "evpmac.txt", "evppbe.txt", "evppkey.txt", "evppkey_ecc.txt" );
plan tests => scalar(@files); plan tests => scalar(@files);
@@ -257,6 +257,20 @@ Digest = MD5
Input = 3132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930 Input = 3132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930
Output = 57edf4a22be3c955ac49da2e2107b67a Output = 57edf4a22be3c955ac49da2e2107b67a
Title = MD5-SHA1
Digest = MD5-SHA1
Input =
Output = d41d8cd98f00b204e9800998ecf8427eda39a3ee5e6b4b0d3255bfef95601890afd80709
Digest = MD5-SHA1
Input = "abc"
Output = 900150983cd24fb0d6963f7d28e17f72a9993e364706816aba3e25717850c26c9cd0d89d
Digest = MD5-SHA1
Input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
Output = 8215ef0796a20bcaaae116d3876c664a84983e441c3bd26ebaae4aa1f95129e5e54670f1
Title = MD4 tests Title = MD4 tests
Digest = MD4 Digest = MD4
@@ -0,0 +1,4366 @@
Title=brainpoolP160r1 curve tests
PrivateKey=ALICE_cf_brainpoolP160r1
-----BEGIN PRIVATE KEY-----
MDYCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEBBBswGQIBAQQUo0UiM85512uHsr2DkIOYgyxSQxk=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP160r1_PUB
-----BEGIN PUBLIC KEY-----
MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQEBAyoABI7OZhLqr+8c3D9Tn6++CqQtc9jG5a1COb1okeZb
wKJUkmWn6NvNCQQ=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP160r1:ALICE_cf_brainpoolP160r1_PUB
PrivateKey=BOB_cf_brainpoolP160r1
-----BEGIN PRIVATE KEY-----
MDYCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEBBBswGQIBAQQUmr0Vq3Z/feXq9tg9s8dxJXne1dU=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP160r1_PUB
-----BEGIN PUBLIC KEY-----
MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQEBAyoABAu+ovBXBFQuw3Rt9qeImT6mLh9rerLFnTRL0+LH
sptS1Mbd0R4+5HM=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP160r1:BOB_cf_brainpoolP160r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP160r1
PeerKey=BOB_cf_brainpoolP160r1_PUB
SharedSecret=2e75cb6a8f13951b437e04a0ed1d714a610036cc
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP160r1
PeerKey=ALICE_cf_brainpoolP160r1_PUB
SharedSecret=2e75cb6a8f13951b437e04a0ed1d714a610036cc
Title=brainpoolP160t1 curve tests
PrivateKey=ALICE_cf_brainpoolP160t1
-----BEGIN PRIVATE KEY-----
MDYCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQECBBswGQIBAQQU1P/o5GQx5PA0kQoiwUtaXBUASUY=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP160t1_PUB
-----BEGIN PUBLIC KEY-----
MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQECAyoABANetsUNsxVmDo7X4LQ9yPYTcjN1HvLTo9GEEQtV
lG71NyzLPQwPDwM=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP160t1:ALICE_cf_brainpoolP160t1_PUB
PrivateKey=BOB_cf_brainpoolP160t1
-----BEGIN PRIVATE KEY-----
MDYCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQECBBswGQIBAQQUck4Sh9X3JjSUIRoxxKv8qLM6Ijc=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP160t1_PUB
-----BEGIN PUBLIC KEY-----
MEIwFAYHKoZIzj0CAQYJKyQDAwIIAQECAyoABEtd7DRUMYXeoxhxpWgPz/esQkXtoTAAune8CAAo
HqNNlR11VDctfkw=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP160t1:BOB_cf_brainpoolP160t1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP160t1
PeerKey=BOB_cf_brainpoolP160t1_PUB
SharedSecret=6ea603a6a1a83812b967c83ef1867bd807be761e
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP160t1
PeerKey=ALICE_cf_brainpoolP160t1_PUB
SharedSecret=6ea603a6a1a83812b967c83ef1867bd807be761e
Title=brainpoolP192r1 curve tests
PrivateKey=ALICE_cf_brainpoolP192r1
-----BEGIN PRIVATE KEY-----
MDoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEDBB8wHQIBAQQYlF5JxzV9Doezn3hLoiidvy5TnIA7
aR+j
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP192r1_PUB
-----BEGIN PUBLIC KEY-----
MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEDAzIABELUMqBZrH66DIJ1a3a42k86THdH1DevigK0dc57
8XEZ3HcuSQ+ycrMmit1PUQItbg==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP192r1:ALICE_cf_brainpoolP192r1_PUB
PrivateKey=BOB_cf_brainpoolP192r1
-----BEGIN PRIVATE KEY-----
MDoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEDBB8wHQIBAQQYjdu95CL1DQMGpsOmsfYOAjF5cW99
bQie
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP192r1_PUB
-----BEGIN PUBLIC KEY-----
MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEDAzIABInqyC1mAfyF7LU5tX/dRF5S/S9uPlQjNAhTRP6/
/kAbKsXmABQXFeM0+P3hMw4UxQ==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP192r1:BOB_cf_brainpoolP192r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP192r1
PeerKey=BOB_cf_brainpoolP192r1_PUB
SharedSecret=2b34396d02a40df0b9f8f9c0b8623be05b41249fbd69e02a
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP192r1
PeerKey=ALICE_cf_brainpoolP192r1_PUB
SharedSecret=2b34396d02a40df0b9f8f9c0b8623be05b41249fbd69e02a
Title=brainpoolP192t1 curve tests
PrivateKey=ALICE_cf_brainpoolP192t1
-----BEGIN PRIVATE KEY-----
MDoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEEBB8wHQIBAQQYKkFNgJ5sJKNIyYPK1h+gdPw04bxa
zIV7
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP192t1_PUB
-----BEGIN PUBLIC KEY-----
MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEEAzIABAzDb+niXBQFn9f0zXf8z+kfdBIYTws8FSfdWFdU
NGo4haY9+fL8D40kNNShgBnlKw==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP192t1:ALICE_cf_brainpoolP192t1_PUB
PrivateKey=BOB_cf_brainpoolP192t1
-----BEGIN PRIVATE KEY-----
MDoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEEBB8wHQIBAQQYFpxTrRJBEpyCePM20Fmw0uYPoxTm
T/sq
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP192t1_PUB
-----BEGIN PUBLIC KEY-----
MEowFAYHKoZIzj0CAQYJKyQDAwIIAQEEAzIABC6CPE1t5PwHpXSS1u4R0JTs1IeDW8hiqarIn3pM
I9wh+oCRjVcqvB4WDaql1bHCYg==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP192t1:BOB_cf_brainpoolP192t1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP192t1
PeerKey=BOB_cf_brainpoolP192t1_PUB
SharedSecret=84049068441a342d7c2951ff159cdc9d05c4bddf2a6e6309
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP192t1
PeerKey=ALICE_cf_brainpoolP192t1_PUB
SharedSecret=84049068441a342d7c2951ff159cdc9d05c4bddf2a6e6309
Title=brainpoolP224r1 curve tests
PrivateKey=ALICE_cf_brainpoolP224r1
-----BEGIN PRIVATE KEY-----
MD4CAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEFBCMwIQIBAQQcHhlSkNTFJbZSy79CADDwo855nH2+
cWxwSl6BpQ==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP224r1_PUB
-----BEGIN PUBLIC KEY-----
MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAzoABBF4+KObaB0yJTPHPrCN6EOnr5M8zKb5CHa7SSyL
4L9nRjgA8TfoU03LQsrtE9beREkxK3EHc25Z
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP224r1:ALICE_cf_brainpoolP224r1_PUB
PrivateKey=BOB_cf_brainpoolP224r1
-----BEGIN PRIVATE KEY-----
MD4CAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEFBCMwIQIBAQQczslMgGENRTriMWvDfGrM/ilLpzy0
Js79UiVzLA==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP224r1_PUB
-----BEGIN PUBLIC KEY-----
MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEFAzoABIGGu4+PPMwOihplm2tLO7dLcDqXZB1MQHloOU8a
taeDvYHIck4z08+1DATvPqpIDzyn9WtXRqmG
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP224r1:BOB_cf_brainpoolP224r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP224r1
PeerKey=BOB_cf_brainpoolP224r1_PUB
SharedSecret=477240c0587dea6aecfcac5a154d7ba3a5d4eb1ab30a69012d4401de
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP224r1
PeerKey=ALICE_cf_brainpoolP224r1_PUB
SharedSecret=477240c0587dea6aecfcac5a154d7ba3a5d4eb1ab30a69012d4401de
Title=brainpoolP224t1 curve tests
PrivateKey=ALICE_cf_brainpoolP224t1
-----BEGIN PRIVATE KEY-----
MD4CAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEGBCMwIQIBAQQca9rhmcgHV6etILVB9ccK2jIFXw4N
YrvlljcGFw==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP224t1_PUB
-----BEGIN PUBLIC KEY-----
MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEGAzoABHA9XoULjM967710RPgT1ICW0b+y9pFpm2yCUq2m
kSiy/JZvuWXhTJ+KmXGnAOTIlyiOUG8tZm39
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP224t1:ALICE_cf_brainpoolP224t1_PUB
PrivateKey=BOB_cf_brainpoolP224t1
-----BEGIN PRIVATE KEY-----
MD4CAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEGBCMwIQIBAQQcFaiqaheY0xBo5lUY8hOXMUICdOAu
NWP/Uw3l+Q==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP224t1_PUB
-----BEGIN PUBLIC KEY-----
MFIwFAYHKoZIzj0CAQYJKyQDAwIIAQEGAzoABLvPkrvyCeS/QdTX5D/AFfF0lTuPpXhSRPKocViS
nUIZAEziCuOsgx+BqAOxNg+CN/tNzHsG1srf
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP224t1:BOB_cf_brainpoolP224t1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP224t1
PeerKey=BOB_cf_brainpoolP224t1_PUB
SharedSecret=2c8dd0dbf3a62a202150e12443461d348be57bc58db0f2f7d8938933
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP224t1
PeerKey=ALICE_cf_brainpoolP224t1_PUB
SharedSecret=2c8dd0dbf3a62a202150e12443461d348be57bc58db0f2f7d8938933
Title=brainpoolP256r1 curve tests
PrivateKey=ALICE_cf_brainpoolP256r1
-----BEGIN PRIVATE KEY-----
MEICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEHBCcwJQIBAQQgcH7I5THTXm+bu+vwtyNt+XBxk/uJ
R5V/zzRyMoXjuek=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP256r1_PUB
-----BEGIN PUBLIC KEY-----
MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABDFYVAzLX03nHXeFY7aJspsp525bbgzfnT68kJXB
HhChZmPaa5BAV5Cn4DXJ5HQ5N/V8Z8Dz0aux0SWtl6ctENM=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP256r1:ALICE_cf_brainpoolP256r1_PUB
PrivateKey=BOB_cf_brainpoolP256r1
-----BEGIN PRIVATE KEY-----
MEICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEHBCcwJQIBAQQgDEj/wLk/4z4Wcv8rOc9lNnRQ6hpr
XfiuUSRqgedZkRU=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP256r1_PUB
-----BEGIN PUBLIC KEY-----
MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABHJdRWXtaxwI0AdvDXEk+a6XuQp72Zi+wxCrxFFW
NgJbmH0yr4jDklp4oiC2UHkapvT6XanGMKFo2ZSziltas0A=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP256r1:BOB_cf_brainpoolP256r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP256r1
PeerKey=BOB_cf_brainpoolP256r1_PUB
SharedSecret=2fdd9d97efdcba3f5b181df53331db0ee42a3b1072147325ce8521dbaeafc3e4
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP256r1
PeerKey=ALICE_cf_brainpoolP256r1_PUB
SharedSecret=2fdd9d97efdcba3f5b181df53331db0ee42a3b1072147325ce8521dbaeafc3e4
Title=brainpoolP256t1 curve tests
PrivateKey=ALICE_cf_brainpoolP256t1
-----BEGIN PRIVATE KEY-----
MEICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEIBCcwJQIBAQQgBDlYKiUEsm+tEN/DDQBhlWKJhF4J
We+4fqVSaPNT3VY=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP256t1_PUB
-----BEGIN PUBLIC KEY-----
MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEIA0IABE6XKfvmlGKrXKN/FHhW9cMThPFUIq6Au3cCujPI
rHejQQJnsz9mSRBtzRkMM1abUc4Mf9xhkWbrT+QuJ3FcLWI=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP256t1:ALICE_cf_brainpoolP256t1_PUB
PrivateKey=BOB_cf_brainpoolP256t1
-----BEGIN PRIVATE KEY-----
MEICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEIBCcwJQIBAQQgDUCTqTrVwouIU3hFoO3hwiME17PF
X7ntzOWKS2ebqGs=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP256t1_PUB
-----BEGIN PUBLIC KEY-----
MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEIA0IABBwxGpomQmgqgsUYHmpYt3qGKRVT/pJfyU+lpLXi
/XAibEp/IvX3oFMEolSoy39poO6Zkq6npAniBqer+bS9Jpw=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP256t1:BOB_cf_brainpoolP256t1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP256t1
PeerKey=BOB_cf_brainpoolP256t1_PUB
SharedSecret=7f177af329a4b377aea6e80bddf14f09c17c4fe81598703898fb62c929cbff04
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP256t1
PeerKey=ALICE_cf_brainpoolP256t1_PUB
SharedSecret=7f177af329a4b377aea6e80bddf14f09c17c4fe81598703898fb62c929cbff04
Title=brainpoolP320r1 curve tests
PrivateKey=ALICE_cf_brainpoolP320r1
-----BEGIN PRIVATE KEY-----
MEoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEJBC8wLQIBAQQophG1zB+U2lRdetiZlk9C4+q7APJ9
xqGQ0+GPq68+WmyZon1lDRQ5/g==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP320r1_PUB
-----BEGIN PUBLIC KEY-----
MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEJA1IABM9TaT9Q2j+VTlQ1pfcXx9SjlU1fEk0RvEbaY1O8
pq8OgkQeulcgSXiI1rJI0wjV/qJoi0coZUHhsJ7bXmdO8vSTdgCMbavZScCkN6iFsALm
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP320r1:ALICE_cf_brainpoolP320r1_PUB
PrivateKey=BOB_cf_brainpoolP320r1
-----BEGIN PRIVATE KEY-----
MEoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEJBC8wLQIBAQQoO6MtFhs8dwul0iRbyfssxtFF6Ubt
q2oHlzvkFL5q4uLSY7pRcDz4vw==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP320r1_PUB
-----BEGIN PUBLIC KEY-----
MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEJA1IABM50yDpoBMhirlHQqjMmVj/KZR0dfvmudoDt02qY
3lKei94evfTHmPG/9BjMYQGQcRM4CDGHR0iUIUJa99e/rxj9IguPkkNiAmDZQaKsqmKB
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP320r1:BOB_cf_brainpoolP320r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP320r1
PeerKey=BOB_cf_brainpoolP320r1_PUB
SharedSecret=4ee386c231d0a7c9bb6dc05362f56ca70bf7ba5dcb66d8c4574c0497fdab6a5b79818a64ff5dc87e
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP320r1
PeerKey=ALICE_cf_brainpoolP320r1_PUB
SharedSecret=4ee386c231d0a7c9bb6dc05362f56ca70bf7ba5dcb66d8c4574c0497fdab6a5b79818a64ff5dc87e
Title=brainpoolP320t1 curve tests
PrivateKey=ALICE_cf_brainpoolP320t1
-----BEGIN PRIVATE KEY-----
MEoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEKBC8wLQIBAQQoMsI2lsl5Sj0I4A3J0I5XStMSLT4P
hMxwrbFdtKQh+At6RN2s12W4Kg==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP320t1_PUB
-----BEGIN PUBLIC KEY-----
MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEKA1IABAvtZgehjOIdjsYKMcK08LaS8zVb6znYb6Qa9Fzf
LhLUSH5S728KJHWXMh7RqZMI3yTC5I0ESqB0CvG5N0hR+3y8L3eQJisCNdnzAgMyy0ab
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP320t1:ALICE_cf_brainpoolP320t1_PUB
PrivateKey=BOB_cf_brainpoolP320t1
-----BEGIN PRIVATE KEY-----
MEoCAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEKBC8wLQIBAQQoNtZiGbwSl0NNHBmTaJKf7/VMqZjo
yWavjg6CPa6ZgpKRR7vIQt5d9Q==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP320t1_PUB
-----BEGIN PUBLIC KEY-----
MGowFAYHKoZIzj0CAQYJKyQDAwIIAQEKA1IABHlS/OtqhHctabDCsDexScvQ2DGXhBuypaEeKOUq
vbLUovatBoreEj1j5YrOl9mKpd9Hj6YqYGWH+7KKjua+5DBn9rlxlmmkst+gb+vm3UE/
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP320t1:BOB_cf_brainpoolP320t1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP320t1
PeerKey=BOB_cf_brainpoolP320t1_PUB
SharedSecret=079d62bad81ceeab9f213818faf249f7b29b87a81b56a33b774b2631860f90a25f5377da504cb619
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP320t1
PeerKey=ALICE_cf_brainpoolP320t1_PUB
SharedSecret=079d62bad81ceeab9f213818faf249f7b29b87a81b56a33b774b2631860f90a25f5377da504cb619
Title=brainpoolP384r1 curve tests
PrivateKey=ALICE_cf_brainpoolP384r1
-----BEGIN PRIVATE KEY-----
MFICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQELBDcwNQIBAQQwUW3EKrK8Rr80Jn5wwvTLC+HDTApA
ndycbRYiQkew7SgijhNO+cV0pE0sNpMZY+Wo
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP384r1_PUB
-----BEGIN PUBLIC KEY-----
MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABBvE/fg0tIrsrIiAL07MlREd5zYk52mW7oQ+jPky
PmGeUoZq1LtpEzQCE1uuruOuyQH1M2c7flVA8Gh3IbSCupwVBCR2QObolwk1w5qK/l/KR26tMeXI
qL2Sy85NCUpMDw==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP384r1:ALICE_cf_brainpoolP384r1_PUB
PrivateKey=BOB_cf_brainpoolP384r1
-----BEGIN PRIVATE KEY-----
MFICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQELBDcwNQIBAQQwdG7bSygpM2GpxDPAb4hOTtFZrP2n
qbyf7v3jFe8/ERpzREPcSntkNDyu/iAsmQKj
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP384r1_PUB
-----BEGIN PUBLIC KEY-----
MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABIIxQfeqZ+uWNKAwZtxAt4ieZW7lCg7Bezpn1dG/
VDvy/Dd5YpAuDtVxFCLfCUVH+gXfC2wUpWj8j8lgPhP1wBat/hu/PN/AQPg9C/J2EcQRVQXwyZvQ
PzgiZeo1aWw2+w==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP384r1:BOB_cf_brainpoolP384r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP384r1
PeerKey=BOB_cf_brainpoolP384r1_PUB
SharedSecret=35e9a3f86a38888d183cc343801dcdaecb664d5b37f7fbc0459fd4612da6b29831bd2d8e5b599376ca510fcc3ac78be6
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP384r1
PeerKey=ALICE_cf_brainpoolP384r1_PUB
SharedSecret=35e9a3f86a38888d183cc343801dcdaecb664d5b37f7fbc0459fd4612da6b29831bd2d8e5b599376ca510fcc3ac78be6
Title=brainpoolP384t1 curve tests
PrivateKey=ALICE_cf_brainpoolP384t1
-----BEGIN PRIVATE KEY-----
MFICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEMBDcwNQIBAQQwGyCfuKlQDK4EflGVc01hBKW+OB/L
ojNz6kgnAWMuWoCyOM8SOkSTbOCimaVqZrlq
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP384t1_PUB
-----BEGIN PUBLIC KEY-----
MHowFAYHKoZIzj0CAQYJKyQDAwIIAQEMA2IABE1O0qNzgozAxaQC7qX2wS+HNfKIAMc7eX4G4Z0w
M30kgGyCn4CtWCBFgG15laf6OnYcdJgC8284B2smZiqHuvssw12SZwOlaXoLGyIsqygTitCO3Ebd
k2dmuYdWzxj5/g==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP384t1:ALICE_cf_brainpoolP384t1_PUB
PrivateKey=BOB_cf_brainpoolP384t1
-----BEGIN PRIVATE KEY-----
MFICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEMBDcwNQIBAQQwbpabbL6g9HZUZ4VusnNGHsHujUsA
cDuviAZTBaHWJsCd5jA64hVFZXlZ9Jj/nSLs
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP384t1_PUB
-----BEGIN PUBLIC KEY-----
MHowFAYHKoZIzj0CAQYJKyQDAwIIAQEMA2IABAyawWqAcNlcwOauu2b93XXqpZQeRM26AYcDcHIf
tZahQrwFpLgt6Tn7tzA2CgRGvSvBGZTxkzuHasxJn+dBDGLraias3U/sLD3P4TQuP9v8cO6i7g4x
T+DZbNUQQ3ePDQ==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP384t1:BOB_cf_brainpoolP384t1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP384t1
PeerKey=BOB_cf_brainpoolP384t1_PUB
SharedSecret=030113dd1662230f1e47418c3044a0852dcd74fa508dbabb02d1fe5d788aa49d8047d02a802f796af21473ab17f6f85f
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP384t1
PeerKey=ALICE_cf_brainpoolP384t1_PUB
SharedSecret=030113dd1662230f1e47418c3044a0852dcd74fa508dbabb02d1fe5d788aa49d8047d02a802f796af21473ab17f6f85f
Title=brainpoolP512r1 curve tests
PrivateKey=ALICE_cf_brainpoolP512r1
-----BEGIN PRIVATE KEY-----
MGICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQENBEcwRQIBAQRAagAsEAU5t/T4yI0MvyTWuPcrQfaa
1xZr99hRfeY7+pDV4yooxTIXUESqk/dBQlFSrVUkdvMQHq/8vm5V/w97LQ==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP512r1_PUB
-----BEGIN PUBLIC KEY-----
MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAEJLmN88iMClNBtyLHzmSgIE9d+v/GRtBr1+r+
Wvz5XOwsiHWWFTRO5Um+3HUVZH+S3nky6n/3Yjn4DFA4lhxV+y40g8p+kkXYKwpXTByQhERcPPPS
wKh/S7Y3k3KSLkphjiBExzlBcj9r3gLww9+0nVer/fnUgRz7YwWldv4PR2E=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP512r1:ALICE_cf_brainpoolP512r1_PUB
PrivateKey=BOB_cf_brainpoolP512r1
-----BEGIN PRIVATE KEY-----
MGICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQENBEcwRQIBAQRAgHKjBCUMVJTF41vKv+Lp2xVz6bsF
P1Aqc+2ehlxlEoYL4H8CbUBh89F1QPjGjIOLEebJcN/KnnpyRGVdx4UV2g==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP512r1_PUB
-----BEGIN PUBLIC KEY-----
MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAElWuk6uPxVgBSLSK9Zfqbid/ipXbIFKVaetCI
YsYOdzkbjGIWLd2MFZIjZ9r7ePEcHXqQiwGvW+8itGM/xwLpA4qZ2QYazqtAbT187d5cdyZf4PQT
/kv/ZTvXTl7xHDtaujQ1re00Z3liEKgKstI80BkA6eA4Jfy4G2F7CX/WuSQ=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP512r1:BOB_cf_brainpoolP512r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP512r1
PeerKey=BOB_cf_brainpoolP512r1_PUB
SharedSecret=84269a8f2932b7e09b23deabaeab26eda6bbdee8846153b0c62b7d2663506a9e71d32cf0cc127ec130f6880612f4e054bc79adb57ddbee97949508ce1eda0bb1
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP512r1
PeerKey=ALICE_cf_brainpoolP512r1_PUB
SharedSecret=84269a8f2932b7e09b23deabaeab26eda6bbdee8846153b0c62b7d2663506a9e71d32cf0cc127ec130f6880612f4e054bc79adb57ddbee97949508ce1eda0bb1
Title=brainpoolP512t1 curve tests
PrivateKey=ALICE_cf_brainpoolP512t1
-----BEGIN PRIVATE KEY-----
MGICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEOBEcwRQIBAQRAd92o2JLX5lk2v6fGr1pH5TT8KUKR
6FaCm6CRk0dC/xK6h0rpONjx+37VuH3uS+HoRlru83maSoeHQneWCc32XA==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_brainpoolP512t1_PUB
-----BEGIN PUBLIC KEY-----
MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDgOBggAEob+TJkhNP6D+HoQtlWcLITI3MM25Axi++awv
HnMoclRLLur7CjQsKd0v6aEzmG2+4WZSZFGLA9L8Z5sh9L916p5CD5nk1pNfy5QKNi2H5R3QC/oc
RfNNxhXdVVekfTaAiqhe8UF3aMngmDAc7sq794DVZvCf1sqq8v5cHrnqRcQ=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_brainpoolP512t1:ALICE_cf_brainpoolP512t1_PUB
PrivateKey=BOB_cf_brainpoolP512t1
-----BEGIN PRIVATE KEY-----
MGICAQAwFAYHKoZIzj0CAQYJKyQDAwIIAQEOBEcwRQIBAQRAVW4ZQKgDeHAkubwYYlp2JKklrbpp
gvez/prOdyHJXJbVriU4lCH/MpH2I+nXjaZ9zLcl9JbnrUOJ6xGPHfZJrw==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_brainpoolP512t1_PUB
-----BEGIN PUBLIC KEY-----
MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDgOBggAEJbQFKxq27CuY7/mgNwEnH3GSYGXy9s6n48qq
gbMrp5uREi8JXZ+BuLQmzZuF15ZPOOmh+EJFjbD8i9NDiUkYLnm1oy/EuE1f5VUNoXFeFFIa21vZ
2kzPYYKYyUNOdG8p/s4rPBFyCMf6Tizt0D4XA4oLptKUUIX2SC1Sd+qakKA=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_brainpoolP512t1:BOB_cf_brainpoolP512t1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_brainpoolP512t1
PeerKey=BOB_cf_brainpoolP512t1_PUB
SharedSecret=48bc4ebdb9a88ca38bed58f5e547eb11d803fd01b6eadff1761ecb48c54525cba43bdb0ee4a4d7aa6701985e0bc12fd32382c035d80acc7ec26adfcb108a07cb
# ECDH Bob with Alice peer
Derive=BOB_cf_brainpoolP512t1
PeerKey=ALICE_cf_brainpoolP512t1_PUB
SharedSecret=48bc4ebdb9a88ca38bed58f5e547eb11d803fd01b6eadff1761ecb48c54525cba43bdb0ee4a4d7aa6701985e0bc12fd32382c035d80acc7ec26adfcb108a07cb
Title=c2pnb163v1 curve tests
PrivateKey=ALICE_cf_c2pnb163v1
-----BEGIN PRIVATE KEY-----
MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAEEHDAaAgEBBBUD1JfG8cLNP9418YW+hVhriqH6O5Y=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2pnb163v1_PUB
-----BEGIN PUBLIC KEY-----
MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEBXgoOgVlWTLQnrQZXgQuSBcIS3bQAlXQ+yJhS03B
4G8rKQXbrc0mvWsF
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2pnb163v1:ALICE_cf_c2pnb163v1_PUB
PrivateKey=BOB_cf_c2pnb163v1
-----BEGIN PRIVATE KEY-----
MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAEEHDAaAgEBBBUAc3EaoMmMORTzQhMkhPIXY+/jUSI=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2pnb163v1_PUB
-----BEGIN PUBLIC KEY-----
MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEBn9J0jo39aFVZqhBsAKZ6bViAu6zBC8WaFGExnpZ
KuBh8tP8VSTHPCHF
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2pnb163v1:BOB_cf_c2pnb163v1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2pnb163v1
PeerKey=BOB_cf_c2pnb163v1_PUB
SharedSecret=065dd38fb6de7f394778e1bf65d840a2c0e7219acd
# ECDH Bob with Alice peer
Derive=BOB_cf_c2pnb163v1
PeerKey=ALICE_cf_c2pnb163v1_PUB
SharedSecret=065dd38fb6de7f394778e1bf65d840a2c0e7219acd
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2pnb163v1
PeerKey=BOB_cf_c2pnb163v1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=066fc46e8cc4327634dd127748020f2de6aab67585
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2pnb163v1
PeerKey=ALICE_cf_c2pnb163v1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=066fc46e8cc4327634dd127748020f2de6aab67585
PublicKey=MALICE_cf_c2pnb163v1_PUB
-----BEGIN PUBLIC KEY-----
MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAEDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8JxepS05nN
/piKdhDD3dDKXUih
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2pnb163v1
PeerKey=MALICE_cf_c2pnb163v1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2pnb163v1
PeerKey=MALICE_cf_c2pnb163v1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2pnb163v2 curve tests
PrivateKey=ALICE_cf_c2pnb163v2
-----BEGIN PRIVATE KEY-----
MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAIEHDAaAgEBBBUA4KFv7c1dygtVbdp/g2z2TqLAHkI=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2pnb163v2_PUB
-----BEGIN PUBLIC KEY-----
MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEAVnlL7lMBaASwCIJaf9x2LgNPVmEAb43huHQlo3Q
4PzawHXQoYm/qgDd
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2pnb163v2:ALICE_cf_c2pnb163v2_PUB
PrivateKey=BOB_cf_c2pnb163v2
-----BEGIN PRIVATE KEY-----
MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAIEHDAaAgEBBBUCEdYqClRWIl2m+X34e+DB2iZSxmQ=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2pnb163v2_PUB
-----BEGIN PUBLIC KEY-----
MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEAVWNIKn7/WMfzuNnd5ws9J0DI2CfBkEJizZHAFqy
kBF3juAQuARgxuT6
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2pnb163v2:BOB_cf_c2pnb163v2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2pnb163v2
PeerKey=BOB_cf_c2pnb163v2_PUB
SharedSecret=0078ebb986d4f9b0aa0bc4af99e82c2bd24130f3f4
# ECDH Bob with Alice peer
Derive=BOB_cf_c2pnb163v2
PeerKey=ALICE_cf_c2pnb163v2_PUB
SharedSecret=0078ebb986d4f9b0aa0bc4af99e82c2bd24130f3f4
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2pnb163v2
PeerKey=BOB_cf_c2pnb163v2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=069a80bcd45987fd1c874cd9dc5453207a09b61d41
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2pnb163v2
PeerKey=ALICE_cf_c2pnb163v2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=069a80bcd45987fd1c874cd9dc5453207a09b61d41
PublicKey=MALICE_cf_c2pnb163v2_PUB
-----BEGIN PUBLIC KEY-----
MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAIDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAABuVBl1V5uysY
n6HANPEoMoK+7Sv0
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2pnb163v2
PeerKey=MALICE_cf_c2pnb163v2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2pnb163v2
PeerKey=MALICE_cf_c2pnb163v2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2pnb163v3 curve tests
PrivateKey=ALICE_cf_c2pnb163v3
-----BEGIN PRIVATE KEY-----
MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAMEHDAaAgEBBBUBItB0y/QeJ+cCh9yoHf0zqLVyMZc=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2pnb163v3_PUB
-----BEGIN PUBLIC KEY-----
MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEBx1HRyjuBMjt+vlbWaQbKOpNvWKFAslzEbPv6MpK
YnObLnq34LRuWznb
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2pnb163v3:ALICE_cf_c2pnb163v3_PUB
PrivateKey=BOB_cf_c2pnb163v3
-----BEGIN PRIVATE KEY-----
MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAMEHDAaAgEBBBUAXVHUHeP8Ioz7IqXOWbjaUXEHE5M=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2pnb163v3_PUB
-----BEGIN PUBLIC KEY-----
MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEAqXF7rsAZ40Z1PT4TeeC45RKTxP4AJBAdfuknJ/J
DZnBLhxBwtqnfUpA
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2pnb163v3:BOB_cf_c2pnb163v3_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2pnb163v3
PeerKey=BOB_cf_c2pnb163v3_PUB
SharedSecret=07fd2ffe9b18973c51caeadbc2154b97a9a0390be9
# ECDH Bob with Alice peer
Derive=BOB_cf_c2pnb163v3
PeerKey=ALICE_cf_c2pnb163v3_PUB
SharedSecret=07fd2ffe9b18973c51caeadbc2154b97a9a0390be9
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2pnb163v3
PeerKey=BOB_cf_c2pnb163v3_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=06f7daf1c963594e1a13f9f17b62aaab2934872c16
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2pnb163v3
PeerKey=ALICE_cf_c2pnb163v3_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=06f7daf1c963594e1a13f9f17b62aaab2934872c16
PublicKey=MALICE_cf_c2pnb163v3_PUB
-----BEGIN PUBLIC KEY-----
MEMwEwYHKoZIzj0CAQYIKoZIzj0DAAMDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7jRlUg9oaLK
LwAuHF8g5Y0JjJnI
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2pnb163v3
PeerKey=MALICE_cf_c2pnb163v3_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2pnb163v3
PeerKey=MALICE_cf_c2pnb163v3_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2pnb176v1 curve tests
PrivateKey=ALICE_cf_c2pnb176v1
-----BEGIN PRIVATE KEY-----
MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAQEHDAaAgEBBBUAaZ1jV1jM9meV5iiNGPU/WMSfWOM=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2pnb176v1_PUB
-----BEGIN PUBLIC KEY-----
MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAEPjME7IV6Tuz2P++wIT60hRxTkk0M0PNgvqYcUoCI
iw3girDLhNzOu3IQ8Ac=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2pnb176v1:ALICE_cf_c2pnb176v1_PUB
PrivateKey=BOB_cf_c2pnb176v1
-----BEGIN PRIVATE KEY-----
MDYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAQEHDAaAgEBBBUAreyYbcF+ONIf64KmeSzV82OI/50=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2pnb176v1_PUB
-----BEGIN PUBLIC KEY-----
MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAEpJn1IDmFj5LceLGfY2wlhI1VHq5vJ+qNIAOXVZhX
uMtp6pzy63rCEK53bgs=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2pnb176v1:BOB_cf_c2pnb176v1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2pnb176v1
PeerKey=BOB_cf_c2pnb176v1_PUB
SharedSecret=3a8021848ee0b2c1c377404267a515225781c181e6ab
# ECDH Bob with Alice peer
Derive=BOB_cf_c2pnb176v1
PeerKey=ALICE_cf_c2pnb176v1_PUB
SharedSecret=3a8021848ee0b2c1c377404267a515225781c181e6ab
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2pnb176v1
PeerKey=BOB_cf_c2pnb176v1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=b06cdc633b56e813d63326c69d2cfa335352279540ac
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2pnb176v1
PeerKey=ALICE_cf_c2pnb176v1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=b06cdc633b56e813d63326c69d2cfa335352279540ac
PublicKey=MALICE_cf_c2pnb176v1_PUB
-----BEGIN PUBLIC KEY-----
MEUwEwYHKoZIzj0CAQYIKoZIzj0DAAQDLgAE4ePri2opCoAUJIUQnaQlvDaxZd9bsdKnjWSvh+FL
zXV3l5j8K3pow+GJBE4=
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2pnb176v1
PeerKey=MALICE_cf_c2pnb176v1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2pnb176v1
PeerKey=MALICE_cf_c2pnb176v1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2pnb208w1 curve tests
PrivateKey=ALICE_cf_c2pnb208w1
-----BEGIN PRIVATE KEY-----
MDoCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAoEIDAeAgEBBBkAiENroXMYNbK/7DQQwCpbXk00gnVd
XF2k
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2pnb208w1_PUB
-----BEGIN PUBLIC KEY-----
ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAEL+IHOL2IfeLRiE6Wqsc0Frqjq7t/JnBmhN1lMB9Y
Yj3+Btcne4CPWf8KvfGjAdMs6JKP4A==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2pnb208w1:ALICE_cf_c2pnb208w1_PUB
PrivateKey=BOB_cf_c2pnb208w1
-----BEGIN PRIVATE KEY-----
MDoCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAoEIDAeAgEBBBkAY1GZLynO/IDWwOOjEWUE7k+I/MkP
cJot
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2pnb208w1_PUB
-----BEGIN PUBLIC KEY-----
ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAENBvdzCDOIvu9zo7reJq1ummhR+0jaDc+EoSlW984
cl9FTi/JJznwC+RNgwVfJ1WKJun1YA==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2pnb208w1:BOB_cf_c2pnb208w1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2pnb208w1
PeerKey=BOB_cf_c2pnb208w1_PUB
SharedSecret=ba32bf80c0f7ab53cb083f267a902a1ad6396eb283237fad91cd
# ECDH Bob with Alice peer
Derive=BOB_cf_c2pnb208w1
PeerKey=ALICE_cf_c2pnb208w1_PUB
SharedSecret=ba32bf80c0f7ab53cb083f267a902a1ad6396eb283237fad91cd
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2pnb208w1
PeerKey=BOB_cf_c2pnb208w1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=f09f5fc8bf20677558bc65939bf1b7fbbbe2579702729304258b
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2pnb208w1
PeerKey=ALICE_cf_c2pnb208w1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=f09f5fc8bf20677558bc65939bf1b7fbbbe2579702729304258b
PublicKey=MALICE_cf_c2pnb208w1_PUB
-----BEGIN PUBLIC KEY-----
ME0wEwYHKoZIzj0CAQYIKoZIzj0DAAoDNgAEfuWB9pBZQin+VnmqgYVpbUpKxSQsnXxNqiDtVwqJ
oPkHxRWnu5e7qI2idMcqaKDeeniUaA==
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2pnb208w1
PeerKey=MALICE_cf_c2pnb208w1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2pnb208w1
PeerKey=MALICE_cf_c2pnb208w1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2pnb272w1 curve tests
PrivateKey=ALICE_cf_c2pnb272w1
-----BEGIN PRIVATE KEY-----
MEICAQAwEwYHKoZIzj0CAQYIKoZIzj0DABAEKDAmAgEBBCEA0SoHwKAgKb7WQ+s0w1iNBemDZ3+f
StHU67fpP7YoF8U=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2pnb272w1_PUB
-----BEGIN PUBLIC KEY-----
MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAE0IH60bGi46FDzEprGZ8EBK5uMMcVke/txeBRNGHQ
DzG68r3EMLZkOfE1+g04MN7HgY7zt3jMYb8ImyLRmvqR2abjs6c=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2pnb272w1:ALICE_cf_c2pnb272w1_PUB
PrivateKey=BOB_cf_c2pnb272w1
-----BEGIN PRIVATE KEY-----
MEICAQAwEwYHKoZIzj0CAQYIKoZIzj0DABAEKDAmAgEBBCEAFqB5GbPJ4d+X7ye7m05l/OirDqfn
MOsOJ6xObBph3zQ=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2pnb272w1_PUB
-----BEGIN PUBLIC KEY-----
MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAEIeIkcMHAuOgvHt2Wp52vVe0DYPNnUX79t/mLSx03
cUlDmcxL7vIXdx9hB4OmQBYbm+YLDNfTFGAIlDfr2tELpVVPWPo=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2pnb272w1:BOB_cf_c2pnb272w1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2pnb272w1
PeerKey=BOB_cf_c2pnb272w1_PUB
SharedSecret=cfebd65006520a40f081d8940edf0ebb8e54491ba1499d9f3c63deecee84ddc07142
# ECDH Bob with Alice peer
Derive=BOB_cf_c2pnb272w1
PeerKey=ALICE_cf_c2pnb272w1_PUB
SharedSecret=cfebd65006520a40f081d8940edf0ebb8e54491ba1499d9f3c63deecee84ddc07142
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2pnb272w1
PeerKey=BOB_cf_c2pnb272w1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=756fc20b27352ac74e5135359c63d375d2732c6d02f25cd526155bac0882a9211dd4
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2pnb272w1
PeerKey=ALICE_cf_c2pnb272w1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=756fc20b27352ac74e5135359c63d375d2732c6d02f25cd526155bac0882a9211dd4
PublicKey=MALICE_cf_c2pnb272w1_PUB
-----BEGIN PUBLIC KEY-----
MF0wEwYHKoZIzj0CAQYIKoZIzj0DABADRgAEvID3AM7qzpKDnOLFY00+E7EKZz/vS/pXgsUA3bWN
oJF8ElXFXv59s/SykQBCTHPqzmUbVmrXmtD44Kt1wUBRJfuwxy4=
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2pnb272w1
PeerKey=MALICE_cf_c2pnb272w1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2pnb272w1
PeerKey=MALICE_cf_c2pnb272w1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2pnb304w1 curve tests
PrivateKey=ALICE_cf_c2pnb304w1
-----BEGIN PRIVATE KEY-----
MEYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABEELDAqAgEBBCUAqJxh50ZIUXOJ1HE3cVkech9OTTPJ
8jy/v5cFcO0X6dykHgnZ
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2pnb304w1_PUB
-----BEGIN PUBLIC KEY-----
MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAEvoaqRX6qiNQiFH1BhgLCPTpYszoRhmlLirkvlw/Q
iXBlfQ7U4g+iRR/kmu2RlwwOHgNNL+mWcvLkFfS8Kr4jzv1EY1Ecx96n21l0YQ==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2pnb304w1:ALICE_cf_c2pnb304w1_PUB
PrivateKey=BOB_cf_c2pnb304w1
-----BEGIN PRIVATE KEY-----
MEYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABEELDAqAgEBBCUAOScHepX+IwqC8TjyAJI1bkR3cYYt
X9BbqYM9GQfVNSLHntTg
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2pnb304w1_PUB
-----BEGIN PUBLIC KEY-----
MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAEYuAq/6Yw5HxMeMohlWmwl+ZK4ZQucfr1tWDKwhDb
kAOUO2P/Q/H+uelM3VVwxeu6A1kaX7K0UZpNa96NRBwI4aevc+vOxCgYkGt9BA==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2pnb304w1:BOB_cf_c2pnb304w1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2pnb304w1
PeerKey=BOB_cf_c2pnb304w1_PUB
SharedSecret=bfddf9f923210e8231a702e3a1c987cf27661de1bc243c1890e437d67d9f49c6ccfadc035d9d
# ECDH Bob with Alice peer
Derive=BOB_cf_c2pnb304w1
PeerKey=ALICE_cf_c2pnb304w1_PUB
SharedSecret=bfddf9f923210e8231a702e3a1c987cf27661de1bc243c1890e437d67d9f49c6ccfadc035d9d
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2pnb304w1
PeerKey=BOB_cf_c2pnb304w1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=0c7afb3143f93ef2166c05437a1757a62c916ff1751c6d456dd7f2356dcbc75df48015eb5ce8
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2pnb304w1
PeerKey=ALICE_cf_c2pnb304w1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=0c7afb3143f93ef2166c05437a1757a62c916ff1751c6d456dd7f2356dcbc75df48015eb5ce8
PublicKey=MALICE_cf_c2pnb304w1_PUB
-----BEGIN PUBLIC KEY-----
MGUwEwYHKoZIzj0CAQYIKoZIzj0DABEDTgAEBZ5FuthQt0mxTJ8NQWN2J37kYT8ySD893IXEmXYP
fMTr+CSNkf/sfF/13GEdVGnHmBgCH61sPWG69RgzdjRPprZFZxXjubIWYkp0DQ==
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2pnb304w1
PeerKey=MALICE_cf_c2pnb304w1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2pnb304w1
PeerKey=MALICE_cf_c2pnb304w1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2pnb368w1 curve tests
PrivateKey=ALICE_cf_c2pnb368w1
-----BEGIN PRIVATE KEY-----
ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABMENDAyAgEBBC0AXeSTXsHb2PEH12tZL8w2q6evA2mi
KfLLIa1c29BTmM//oWdKpqeuvwMIBto=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2pnb368w1_PUB
-----BEGIN PUBLIC KEY-----
MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEmEBXcvMgnHwJW7wAKM4cqboco6zF01J9ntUwoACI
euvf3cpPXBvxUawJXfO9FwFRQabDRagGP99Walidd2JW8nWDWZgZMKj15Wh+4bp2dZHc2tPIIHHd
3makbwQ=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2pnb368w1:ALICE_cf_c2pnb368w1_PUB
PrivateKey=BOB_cf_c2pnb368w1
-----BEGIN PRIVATE KEY-----
ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABMENDAyAgEBBC0Aq1R9M/mCMbJMj6VBUpBkS4HXywEz
Qun6d6uXgyU4LZRszA7Dz9+eKbXEMsk=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2pnb368w1_PUB
-----BEGIN PUBLIC KEY-----
MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEJOSnsaXA9wb5p8CGLPvYI47Yf3IdZSbWQ3Sn6G2v
At+zYlpzGax1oJ1CW8fGA0Gu0RnvAfDeW9vgrtzshH1Vy/Ni6a7LPho99PtUP2nzUBnv+hfhFSra
gqfRaOs=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2pnb368w1:BOB_cf_c2pnb368w1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2pnb368w1
PeerKey=BOB_cf_c2pnb368w1_PUB
SharedSecret=008d20ede3961be3b01051d6fdae63db43865664804d432293a2edb13dcc8be0fe5b0c655297a84b9067a29c2a6f
# ECDH Bob with Alice peer
Derive=BOB_cf_c2pnb368w1
PeerKey=ALICE_cf_c2pnb368w1_PUB
SharedSecret=008d20ede3961be3b01051d6fdae63db43865664804d432293a2edb13dcc8be0fe5b0c655297a84b9067a29c2a6f
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2pnb368w1
PeerKey=BOB_cf_c2pnb368w1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=df32ddeeffa029aeadabad000a79c3154a0ddd0aeacf4e3de426f5c10096eff8912038c64d4c899131dcd4df2561
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2pnb368w1
PeerKey=ALICE_cf_c2pnb368w1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=df32ddeeffa029aeadabad000a79c3154a0ddd0aeacf4e3de426f5c10096eff8912038c64d4c899131dcd4df2561
PublicKey=MALICE_cf_c2pnb368w1_PUB
-----BEGIN PUBLIC KEY-----
MHUwEwYHKoZIzj0CAQYIKoZIzj0DABMDXgAEWDn/U9rymClM/a0Q1mawHjQjvpxSehRWstSE+2Sd
ubcZowJ+rw5LsEZteQyeVrCpKYUiIBmIVuFb2LDjtNLIJD1lr8C+vdco24ciLS9RzF/Dc9X+tcIj
726e1BE=
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2pnb368w1
PeerKey=MALICE_cf_c2pnb368w1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2pnb368w1
PeerKey=MALICE_cf_c2pnb368w1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2tnb191v1 curve tests
PrivateKey=ALICE_cf_c2tnb191v1
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAUEHzAdAgEBBBgXyG7A4BvSmjKEl3aU+FQUt02p9U7x
Jk4=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2tnb191v1_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAEG9iuZmnhz2H/YQKmVUaO//fm7hvV+CP5c2iszpR3
7lRimqLWHPyvKgcP+PRCIUom
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2tnb191v1:ALICE_cf_c2tnb191v1_PUB
PrivateKey=BOB_cf_c2tnb191v1
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAUEHzAdAgEBBBg4+2hv9x9HxFy0c2c1XESDdgOamHu0
MTU=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2tnb191v1_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAEdO/4ii8gi8eQfBrv3XmsOETwIfT8OIpBW/kUoHD+
adqalcB6SIWOfoJReDLcpxAD
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2tnb191v1:BOB_cf_c2tnb191v1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2tnb191v1
PeerKey=BOB_cf_c2tnb191v1_PUB
SharedSecret=2ee8a85151c397600984285307c14f0ea0e4c2071d753a99
# ECDH Bob with Alice peer
Derive=BOB_cf_c2tnb191v1
PeerKey=ALICE_cf_c2tnb191v1_PUB
SharedSecret=2ee8a85151c397600984285307c14f0ea0e4c2071d753a99
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2tnb191v1
PeerKey=BOB_cf_c2tnb191v1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=334051dfd62237e69e280ce2fab979bd77260f8dfe4df989
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2tnb191v1
PeerKey=ALICE_cf_c2tnb191v1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=334051dfd62237e69e280ce2fab979bd77260f8dfe4df989
PublicKey=MALICE_cf_c2tnb191v1_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAUDMgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcPEwZ1wj
iNoFyzyANZl8IDB0fF1RmZD6
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2tnb191v1
PeerKey=MALICE_cf_c2tnb191v1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2tnb191v1
PeerKey=MALICE_cf_c2tnb191v1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2tnb191v2 curve tests
PrivateKey=ALICE_cf_c2tnb191v2
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAYEHzAdAgEBBBgQZHIQIPrAsbJqq4ZX3JdMrZAkaIGP
jbo=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2tnb191v2_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEAyQdwZYRIiv7O4/WRLDKJ249TM8dr2Y+Oz8rSxCI
UVvJT/Jv9m462J6Iz1XOohhP
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2tnb191v2:ALICE_cf_c2tnb191v2_PUB
PrivateKey=BOB_cf_c2tnb191v2
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAYEHzAdAgEBBBgThhW6d5QDaqM8yhm16q6Pu/VFBpf7
wcs=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2tnb191v2_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEBVkB4O6fFvGzMHv4BF51muFA0npOGKoOdKbIIMQY
JBIoz1RNNXTcgdpguLcrvcPJ
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2tnb191v2:BOB_cf_c2tnb191v2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2tnb191v2
PeerKey=BOB_cf_c2tnb191v2_PUB
SharedSecret=711f90cb2aaea65e939065cbd1896affe1d490ba14571400
# ECDH Bob with Alice peer
Derive=BOB_cf_c2tnb191v2
PeerKey=ALICE_cf_c2tnb191v2_PUB
SharedSecret=711f90cb2aaea65e939065cbd1896affe1d490ba14571400
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2tnb191v2
PeerKey=BOB_cf_c2tnb191v2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=1740db5b771fa2889d3ec7c1ba8eeffa7741f0ee62433dce
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2tnb191v2
PeerKey=ALICE_cf_c2tnb191v2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=1740db5b771fa2889d3ec7c1ba8eeffa7741f0ee62433dce
PublicKey=MALICE_cf_c2tnb191v2_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAYDMgAEA3yPV6Ilx7PU7dWIDzgKzFV07LNsn1EhMyLQaa5U
2vqunpWef+/CaO2pFBcwwW+x
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2tnb191v2
PeerKey=MALICE_cf_c2tnb191v2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2tnb191v2
PeerKey=MALICE_cf_c2tnb191v2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2tnb191v3 curve tests
PrivateKey=ALICE_cf_c2tnb191v3
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAcEHzAdAgEBBBgTPjf06B01Jq59qU1iczNuA29WfW+b
erU=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2tnb191v3_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAEL4NGEUX2CXY18MyoH1inKq5kde9RGr25ODm/0BEX
HWsGvDE2HC+6pL2BMl3MRCty
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2tnb191v3:ALICE_cf_c2tnb191v3_PUB
PrivateKey=BOB_cf_c2tnb191v3
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAcEHzAdAgEBBBgUC2bC465JTXYLUaaET/r5n7X85gRH
iSQ=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2tnb191v3_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAEPKekNkT9mQ8KRCTR2RwCFkhNvsjL+/mLHYzbMrYe
QFIb5QwXAdbg2tEOl7yj9qkk
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2tnb191v3:BOB_cf_c2tnb191v3_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2tnb191v3
PeerKey=BOB_cf_c2tnb191v3_PUB
SharedSecret=196200f7ea06c43c35516b995cf4a4dd4151dbd0ed998561
# ECDH Bob with Alice peer
Derive=BOB_cf_c2tnb191v3
PeerKey=ALICE_cf_c2tnb191v3_PUB
SharedSecret=196200f7ea06c43c35516b995cf4a4dd4151dbd0ed998561
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2tnb191v3
PeerKey=BOB_cf_c2tnb191v3_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=311939377670a8a1ed1ee17f9dd182167da00c5a19e2e109
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2tnb191v3
PeerKey=ALICE_cf_c2tnb191v3_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=311939377670a8a1ed1ee17f9dd182167da00c5a19e2e109
PublicKey=MALICE_cf_c2tnb191v3_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAAcDMgAESvPjWlLnANK2j38hHZ0uqueaniovkhwwdJZjrmUk
n5vQBTxUzkIkMjL33v6Lr3z7
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2tnb191v3
PeerKey=MALICE_cf_c2tnb191v3_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2tnb191v3
PeerKey=MALICE_cf_c2tnb191v3_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2tnb239v1 curve tests
PrivateKey=ALICE_cf_c2tnb239v1
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAsEJTAjAgEBBB4fMJDhCEiuEf/RF6oGjHVcNwN+wCYG
rJMnJLIXiCI=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2tnb239v1_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAEUgG/uMWy4k0R/kbVJEapF6r5ik4Q9WPsDXAd0856
dVL8PvBXgixk2tKfyY1xUVebcEVlgdZP1pN1Xyvi
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2tnb239v1:ALICE_cf_c2tnb239v1_PUB
PrivateKey=BOB_cf_c2tnb239v1
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAsEJTAjAgEBBB4JLDwVJQw3+00FiZBDWFErd7PXnchH
sfpZeV3i5FM=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2tnb239v1_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAEcwKt31cWaoFUd7QxYSdwgMDOqEhjPbD3Z9AfR3tc
G77/MY5z1oQegqImBog645vtPWI8lZd1zcl6QYRS
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2tnb239v1:BOB_cf_c2tnb239v1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2tnb239v1
PeerKey=BOB_cf_c2tnb239v1_PUB
SharedSecret=413ea943cdf40c45795c77aeea7099b81cc42566067924d1fdbae42ddf99
# ECDH Bob with Alice peer
Derive=BOB_cf_c2tnb239v1
PeerKey=ALICE_cf_c2tnb239v1_PUB
SharedSecret=413ea943cdf40c45795c77aeea7099b81cc42566067924d1fdbae42ddf99
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2tnb239v1
PeerKey=BOB_cf_c2tnb239v1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=1f1e5a6084492e895c35d76a5d2b4a3fafbd96c4b2230ea71cc1c711fa38
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2tnb239v1
PeerKey=ALICE_cf_c2tnb239v1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=1f1e5a6084492e895c35d76a5d2b4a3fafbd96c4b2230ea71cc1c711fa38
PublicKey=MALICE_cf_c2tnb239v1_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAsDPgAEJFn89FF7xaa5m+XGxWKFwCH+Mu4rbxwi6lvhuEuT
Itl/OAosALFh8xpt+N5gmKtUdhpjyok2udC4B/mY
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2tnb239v1
PeerKey=MALICE_cf_c2tnb239v1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2tnb239v1
PeerKey=MALICE_cf_c2tnb239v1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2tnb239v2 curve tests
PrivateKey=ALICE_cf_c2tnb239v2
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAwEJTAjAgEBBB4KU4YKdzFOkl6M1biHkxtVGD2uNXr6
GbEcp4PbJKU=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2tnb239v2_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAEKzpycflUrsyqVV/+fzvC2+AuX3r0b0Syn8acvn78
VnKA9mZKwPLWhnMJcLyzarIzc/6/UcfYGNmTyUlG
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2tnb239v2:ALICE_cf_c2tnb239v2_PUB
PrivateKey=BOB_cf_c2tnb239v2
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAAwEJTAjAgEBBB4HZQLKGKBpIKiyTq6XYZWQNph1oGP+
JLwCwn7lYx0=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2tnb239v2_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAETPSkhMs3JW3BG66FSfCov76JKdcRiBhMCW453Wku
N7yBxBmWjeclHhnXIzfc4qM4qf9n3KzMSXejPVYg
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2tnb239v2:BOB_cf_c2tnb239v2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2tnb239v2
PeerKey=BOB_cf_c2tnb239v2_PUB
SharedSecret=2e738f14795b2e19ee791c1bf30c5e462ca6c6ed0ec5c6c6402d0730cf4c
# ECDH Bob with Alice peer
Derive=BOB_cf_c2tnb239v2
PeerKey=ALICE_cf_c2tnb239v2_PUB
SharedSecret=2e738f14795b2e19ee791c1bf30c5e462ca6c6ed0ec5c6c6402d0730cf4c
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2tnb239v2
PeerKey=BOB_cf_c2tnb239v2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=7662d8b94d3f0d20eb8e112ca8b7d5699d81f35902df5b77561977df3946
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2tnb239v2
PeerKey=ALICE_cf_c2tnb239v2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=7662d8b94d3f0d20eb8e112ca8b7d5699d81f35902df5b77561977df3946
PublicKey=MALICE_cf_c2tnb239v2_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAAwDPgAES8fLc5mtVI0HqgKRJ7mN8MU1B0FBkiim6jCHYJf3
JYUX3Gn3Ai11cHie+nVb3z51jSkpDQENHESTv5K2
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2tnb239v2
PeerKey=MALICE_cf_c2tnb239v2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2tnb239v2
PeerKey=MALICE_cf_c2tnb239v2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2tnb239v3 curve tests
PrivateKey=ALICE_cf_c2tnb239v3
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAA0EJTAjAgEBBB4BZZXtcMw5GrpgHJLx4D8z7M6ocWdv
rDl2fV9ObC8=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2tnb239v3_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAEOu2HIAUX+r6IbRlrPUJUBDL814dR++maVAAkUIjD
H33ewqcI9ZLtpvuR8P8hgRNUTXlh1GWgrB6F21Eo
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2tnb239v3:ALICE_cf_c2tnb239v3_PUB
PrivateKey=BOB_cf_c2tnb239v3
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAA0EJTAjAgEBBB4BDxw3SA54y6uYOW1n4yZaUK22J9ef
XG3HcQX+4i0=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2tnb239v3_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAEVaEi76wyzlpzkkSElf4SmGZ7kf1ghHMP82HkGk7K
BC10zUyppoSOAr0eX4pHAkDUF1m/KGoJa7QcJJww
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2tnb239v3:BOB_cf_c2tnb239v3_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2tnb239v3
PeerKey=BOB_cf_c2tnb239v3_PUB
SharedSecret=6a756022ec2ea89b0fa757824909707102acf3b7da39dc625c6252eb4c48
# ECDH Bob with Alice peer
Derive=BOB_cf_c2tnb239v3
PeerKey=ALICE_cf_c2tnb239v3_PUB
SharedSecret=6a756022ec2ea89b0fa757824909707102acf3b7da39dc625c6252eb4c48
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2tnb239v3
PeerKey=BOB_cf_c2tnb239v3_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=3240e19dd8c290e5e1749df60ad0166dd9dbfad645e518b4948e14f774ce
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2tnb239v3
PeerKey=ALICE_cf_c2tnb239v3_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=3240e19dd8c290e5e1749df60ad0166dd9dbfad645e518b4948e14f774ce
PublicKey=MALICE_cf_c2tnb239v3_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAA0DPgAELe/znC87/2ucKX7mXUUyiUvg67slWRdH+WHDct9d
LcXDyB342ZN1nm0NCAmBMcLjohX0Zza0ji3YNjT1
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2tnb239v3
PeerKey=MALICE_cf_c2tnb239v3_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2tnb239v3
PeerKey=MALICE_cf_c2tnb239v3_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2tnb359v1 curve tests
PrivateKey=ALICE_cf_c2tnb359v1
-----BEGIN PRIVATE KEY-----
ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABIENDAyAgEBBC0Afea/a1NrRf6rRRr/UDsI559ADTFP
Bd5HaS33laTZkCdNLITw1UUrESUIOiU=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2tnb359v1_PUB
-----BEGIN PUBLIC KEY-----
MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEZMJU3QF9UJJp2m6qyCnhPuVlPKPHtav3DCgH27SY
RLMN7C4rRmqiJakD11QtOforOgbPW5r/v7t4TUWIlq8jV7kapJNtxQtg/S87L0NQGgHBq/lnJL8x
fN3Y
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2tnb359v1:ALICE_cf_c2tnb359v1_PUB
PrivateKey=BOB_cf_c2tnb359v1
-----BEGIN PRIVATE KEY-----
ME4CAQAwEwYHKoZIzj0CAQYIKoZIzj0DABIENDAyAgEBBC0Aaw+yr7Atz8CXjLsbI5msXLqxFoMr
esHVfU53i6ucCsnPTWSDWSb5CePtI9g=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2tnb359v1_PUB
-----BEGIN PUBLIC KEY-----
MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEUQde0iyDHbsFJZ459d4zUhsrJYAkqndmEBRwSlg5
ZNX8SSS79Zf2HsQl+LWIZyzeYzoHobKXufChw9/H4ThS58VwV5/0hoE929PIgJ1MSEqr5LvJXi+b
R8fe
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2tnb359v1:BOB_cf_c2tnb359v1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2tnb359v1
PeerKey=BOB_cf_c2tnb359v1_PUB
SharedSecret=623a71122b5acad467d40d97ef8d8fd46541d8c41d7de6ba181c24e2714c1bc35bcefcf089af69c406eedecc12
# ECDH Bob with Alice peer
Derive=BOB_cf_c2tnb359v1
PeerKey=ALICE_cf_c2tnb359v1_PUB
SharedSecret=623a71122b5acad467d40d97ef8d8fd46541d8c41d7de6ba181c24e2714c1bc35bcefcf089af69c406eedecc12
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2tnb359v1
PeerKey=BOB_cf_c2tnb359v1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=1c9c4cea3251dace2cb763eabf60f106cc1b03f2491e6f20d7bea78e062f8f14c4e82e4d43786eefa44d33f7e9
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2tnb359v1
PeerKey=ALICE_cf_c2tnb359v1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=1c9c4cea3251dace2cb763eabf60f106cc1b03f2491e6f20d7bea78e062f8f14c4e82e4d43786eefa44d33f7e9
PublicKey=MALICE_cf_c2tnb359v1_PUB
-----BEGIN PUBLIC KEY-----
MHMwEwYHKoZIzj0CAQYIKoZIzj0DABIDXAAEDW1DxeJfyPPnxX4WiLM5ZnX9AypqqeKj7FTHxanl
++A6FgVFjUCatt8Sr4xnSc3zDE0kh6f/wS9SbtCAi74i8HAX5SJiccCMPRkw6kBuHZgiG8EmFJ53
OEQw
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2tnb359v1
PeerKey=MALICE_cf_c2tnb359v1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2tnb359v1
PeerKey=MALICE_cf_c2tnb359v1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=c2tnb431r1 curve tests
PrivateKey=ALICE_cf_c2tnb431r1
-----BEGIN PRIVATE KEY-----
MFYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABQEPDA6AgEBBDUAG1rgUnH3+PSxqlzt9+QTWv7PrYxz
Qgqj5A2Mqi0LbdixVDciVSSgrU6keVu72oCmHVP+OQ==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_c2tnb431r1_PUB
-----BEGIN PUBLIC KEY-----
MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABFcQEDic9pYxtxStk/oBxafqyUux1kvEOOwR4FxJ
pGEMTh8B+YfkWuq+IDY5zSqNKtg7cRlAFX2dlHhRSvNxrN3DJCrhe/TQq8SIYawcqEQnM39F8hHM
7VQJLEsBpJ/WUonwMJXknjgfONP7GA==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_c2tnb431r1:ALICE_cf_c2tnb431r1_PUB
PrivateKey=BOB_cf_c2tnb431r1
-----BEGIN PRIVATE KEY-----
MFYCAQAwEwYHKoZIzj0CAQYIKoZIzj0DABQEPDA6AgEBBDUBOsZrpI6hTgImR8DBhKOOrh2SvcT/
VwmzYnbuCRrtr/zwIQcqKKI1ztlrl+kxFxJfk5L7UQ==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_c2tnb431r1_PUB
-----BEGIN PUBLIC KEY-----
MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABHeTG6xjbsKKxn4oYQt9qUM9LrSPZfY11XsBmROc
fb9kEbBLU+QixSbYZOrqPasesDV9dApDXF+w6EfIeNyJEK5Lk+aXamrn7fRMUAQ2m7+Odp87GgA+
8Cg6YpgbK314SK5STziqoZwzEISJ9w==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_c2tnb431r1:BOB_cf_c2tnb431r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_c2tnb431r1
PeerKey=BOB_cf_c2tnb431r1_PUB
SharedSecret=1c9a64de0b706f0e562d5144ceeb4806ce8782865dc0e3fab694967955bd40afc79bf9241ef4a173fbf9baeac0d416392fb13bdc6978
# ECDH Bob with Alice peer
Derive=BOB_cf_c2tnb431r1
PeerKey=ALICE_cf_c2tnb431r1_PUB
SharedSecret=1c9a64de0b706f0e562d5144ceeb4806ce8782865dc0e3fab694967955bd40afc79bf9241ef4a173fbf9baeac0d416392fb13bdc6978
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_c2tnb431r1
PeerKey=BOB_cf_c2tnb431r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=059e2ea2d0d8bad5005a9401196ebb1633377c7ded8ec58a0398cf1d0f42ea82614f68cb836ecfc33612b8a705b4c3b7b4ed12eb6e22
# ECC CDH Bob with Alice peer
Derive=BOB_cf_c2tnb431r1
PeerKey=ALICE_cf_c2tnb431r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=059e2ea2d0d8bad5005a9401196ebb1633377c7ded8ec58a0398cf1d0f42ea82614f68cb836ecfc33612b8a705b4c3b7b4ed12eb6e22
PublicKey=MALICE_cf_c2tnb431r1_PUB
-----BEGIN PUBLIC KEY-----
MIGFMBMGByqGSM49AgEGCCqGSM49AwAUA24ABA/cHJ1bNJ2l3GcrT67WEoU0w/Ajy28T9X4XLv8a
5EpnkembeFlRG8ILplDcZimE8kjNQWynAk+NbJRsIU/XLzcm7VXkkqEkx/yCQ/TOcbeB3qrpzWYr
F3Cls9x60wuFYNc9d6eIe4B+puz9IQ==
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_c2tnb431r1
PeerKey=MALICE_cf_c2tnb431r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_c2tnb431r1
PeerKey=MALICE_cf_c2tnb431r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=prime192v1 curve tests
PrivateKey=ALICE_cf_prime192v1
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEHzAdAgEBBBhQFYLaobJ47BVWWZv/ByY8Ti69m/U9
TeI=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_prime192v1_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEHYbt14KzucSpmKMrlDx1IGz/a28nDs21OjKgx3BK
PZ78UrllIr69kgrYUKsRg4sd
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_prime192v1:ALICE_cf_prime192v1_PUB
PrivateKey=BOB_cf_prime192v1
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEHzAdAgEBBBhsbmKHAtygIqirkmUXSbniDJOx0/fI
CWM=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_prime192v1_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEJA+FQcXq5Axzv8pLDslxq1QVt1hjN2i0TgoO6Yxp
bAekMot69VorE8ibSzgJixXJ
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_prime192v1:BOB_cf_prime192v1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_prime192v1
PeerKey=BOB_cf_prime192v1_PUB
SharedSecret=e36cad3b0f8d00f60f090440a76df47896713ae61421c354
# ECDH Bob with Alice peer
Derive=BOB_cf_prime192v1
PeerKey=ALICE_cf_prime192v1_PUB
SharedSecret=e36cad3b0f8d00f60f090440a76df47896713ae61421c354
Title=prime192v2 curve tests
PrivateKey=ALICE_cf_prime192v2
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEHzAdAgEBBBh6rcgPFDmA2P4CGSrC7ii9DAjepljX
sMM=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_prime192v2_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAET6wOPoDU3BeU7VKozsGEvDeJs//9Z/aNEcbbLQ0d
g5IzsS/XMJzifjCJZgNsb7mi
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_prime192v2:ALICE_cf_prime192v2_PUB
PrivateKey=BOB_cf_prime192v2
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEHzAdAgEBBBja4R9iZuiu95XEuM1558ArTwNnAl7M
xqI=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_prime192v2_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAEcgWNAOL4pZCmouZl+be+rC0yLAJkm2YuPWs+FX2u
Y6OU1aHkkspZTC1uUVWjchy5
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_prime192v2:BOB_cf_prime192v2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_prime192v2
PeerKey=BOB_cf_prime192v2_PUB
SharedSecret=ae2ff9f1f9f24e6d281dc78993d9f71913e1e105965000a1
# ECDH Bob with Alice peer
Derive=BOB_cf_prime192v2
PeerKey=ALICE_cf_prime192v2_PUB
SharedSecret=ae2ff9f1f9f24e6d281dc78993d9f71913e1e105965000a1
Title=prime192v3 curve tests
PrivateKey=ALICE_cf_prime192v3
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQMEHzAdAgEBBBij5blPQRKM1/9c57YDZXIIue80MDqx
Igw=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_prime192v3_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAE1+mLeiT/jjHO71IL/C/ZcnF6+yj9FV6eqfuPdHAi
MsDRFCB6/h8TcCUFuospu5l0
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_prime192v3:ALICE_cf_prime192v3_PUB
PrivateKey=BOB_cf_prime192v3
-----BEGIN PRIVATE KEY-----
MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQMEHzAdAgEBBBhgFP4fFLtm/yk5tsosBUBKTg370FOu
92g=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_prime192v3_PUB
-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQMDMgAEv35bOz0xqLeJqpZdZ8LyiUgsJMBEtN2UMJm8blX2
vMWAgEeLhzar86BUlS7dZwS7
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_prime192v3:BOB_cf_prime192v3_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_prime192v3
PeerKey=BOB_cf_prime192v3_PUB
SharedSecret=9e562ecbe29c510a13b0daea822ec864c2a9684d2a382812
# ECDH Bob with Alice peer
Derive=BOB_cf_prime192v3
PeerKey=ALICE_cf_prime192v3_PUB
SharedSecret=9e562ecbe29c510a13b0daea822ec864c2a9684d2a382812
Title=prime239v1 curve tests
PrivateKey=ALICE_cf_prime239v1
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQQEJTAjAgEBBB5nH2mt/GUx+I/60NlcuQlrdupDXwMY
SF/w+SUTNqY=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_prime239v1_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQQDPgAEMqQLCgDR9njkq9QELuOu+J/9YGcxJHULdvxHImLW
RXqBUM5Xea+Qk2SKIpWcogxr2zFeQyeLj2bQysuo
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_prime239v1:ALICE_cf_prime239v1_PUB
PrivateKey=BOB_cf_prime239v1
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQQEJTAjAgEBBB5RZgYV+j+zhwI12zCzB+mdPofMx0kB
jZ9gplgXxzk=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_prime239v1_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQQDPgAEBR5m/kllh025oO4GvqALkjRliVv7q4x8ro/tkYnT
L2U4hkT6xUeRu9QC4KOz7KUVH+nBbQASL4XQg/3C
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_prime239v1:BOB_cf_prime239v1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_prime239v1
PeerKey=BOB_cf_prime239v1_PUB
SharedSecret=196b1d0206d4f87c313c266bfb12c90dd1f1f64b89bfc16518086b9801b8
# ECDH Bob with Alice peer
Derive=BOB_cf_prime239v1
PeerKey=ALICE_cf_prime239v1_PUB
SharedSecret=196b1d0206d4f87c313c266bfb12c90dd1f1f64b89bfc16518086b9801b8
Title=prime239v2 curve tests
PrivateKey=ALICE_cf_prime239v2
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQUEJTAjAgEBBB5uLCwofbD2Suc/iIRhXJsPqZ4me87h
+tFevsg1pPE=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_prime239v2_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQUDPgAETH77jXHBItV673gTNK/HTFldo4VxPiscbideUgKd
CWjdVsXebgAZbqQwf0h9QWcIgM7K7ODdW5kCuZ1G
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_prime239v2:ALICE_cf_prime239v2_PUB
PrivateKey=BOB_cf_prime239v2
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQUEJTAjAgEBBB5nlF+ouuw3Ljkgy3pHkCN+/JoHAMyT
KY0wlvJdo/w=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_prime239v2_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQUDPgAELUQYo0UH8HbK/RMD2jVphBU+iB4OTOfvaaTlHq06
dcJ8a9a+mAQKhb1OZVEq1n4nQsgRiI1rPxugVERM
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_prime239v2:BOB_cf_prime239v2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_prime239v2
PeerKey=BOB_cf_prime239v2_PUB
SharedSecret=1d18ca6366bceba3c1477daa0e08202088abcf14fc2b8fbf98ba95858fcf
# ECDH Bob with Alice peer
Derive=BOB_cf_prime239v2
PeerKey=ALICE_cf_prime239v2_PUB
SharedSecret=1d18ca6366bceba3c1477daa0e08202088abcf14fc2b8fbf98ba95858fcf
Title=prime239v3 curve tests
PrivateKey=ALICE_cf_prime239v3
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQYEJTAjAgEBBB5J95JRhBDTzlyAPAfu6T2Pb9vK0NKu
Y9AfhA2G+mI=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_prime239v3_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQYDPgAEZEN48pqgLF08Yjj/8BLM2Nr5ZhpYxyBurbzKRuBb
GLpzZLteJN9vZjN7ouNpMxLVUFQxTOwpsvUw86Lk
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_prime239v3:ALICE_cf_prime239v3_PUB
PrivateKey=BOB_cf_prime239v3
-----BEGIN PRIVATE KEY-----
MD8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQYEJTAjAgEBBB5Z7rMZML1xeryBaYYr+QuMiQxHT44I
d9bmIVvG3dM=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_prime239v3_PUB
-----BEGIN PUBLIC KEY-----
MFUwEwYHKoZIzj0CAQYIKoZIzj0DAQYDPgAEQUWKqohAPAoIYEZOvc1QwSlcB+gW0febaNxGOy47
LaIWdsNM7GJVP9xpdSwm/L+Dip/oH4E59f3SiOAd
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_prime239v3:BOB_cf_prime239v3_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_prime239v3
PeerKey=BOB_cf_prime239v3_PUB
SharedSecret=4dcc2c67c5993162ed71ebb33077bbb85395b0d3eec2311aa404e45901a0
# ECDH Bob with Alice peer
Derive=BOB_cf_prime239v3
PeerKey=ALICE_cf_prime239v3_PUB
SharedSecret=4dcc2c67c5993162ed71ebb33077bbb85395b0d3eec2311aa404e45901a0
Title=prime256v1 curve tests
PrivateKey=ALICE_cf_prime256v1
-----BEGIN PRIVATE KEY-----
MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCDZE0NZiGAFJX6JQxumKTFRT+XFCQqJ
gHCUxmU2fRcn9Q==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_prime256v1_PUB
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5kDOrX6kmk1/jHfEdMBluFos6dyCbzKVOX3v2aa2
y5IhlhTKtCJdydX+XWLDXWW9sbtIRNP94R3iOOpRPBqpGg==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_prime256v1:ALICE_cf_prime256v1_PUB
PrivateKey=BOB_cf_prime256v1
-----BEGIN PRIVATE KEY-----
MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCAxJgV1dLJw/o2Dmh1fIY1KpBd88WCP
23wZzR8DzhyCrA==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_prime256v1_PUB
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5J6yA+j0zrGi6RilUhjrcL7OUMzYTwpnw5DdRXr0
creHgE03EFV//7xqadB4BDwFIGM9MV2sE6qREEomWhZFeg==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_prime256v1:BOB_cf_prime256v1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_prime256v1
PeerKey=BOB_cf_prime256v1_PUB
SharedSecret=ee63690b553dcd9bccb066137725f0489395a83f4d280f309339d606c969734a
# ECDH Bob with Alice peer
Derive=BOB_cf_prime256v1
PeerKey=ALICE_cf_prime256v1_PUB
SharedSecret=ee63690b553dcd9bccb066137725f0489395a83f4d280f309339d606c969734a
Title=secp112r1 curve tests
PrivateKey=ALICE_cf_secp112r1
-----BEGIN PRIVATE KEY-----
MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAYEFTATAgEBBA6zC5ZzEIIdvY4Q7DS0uw==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp112r1_PUB
-----BEGIN PUBLIC KEY-----
MDIwEAYHKoZIzj0CAQYFK4EEAAYDHgAEYIawfjH3qRrJJWwuG3Ys5ZhDJsmdWi34aHgKAA==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp112r1:ALICE_cf_secp112r1_PUB
PrivateKey=BOB_cf_secp112r1
-----BEGIN PRIVATE KEY-----
MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAYEFTATAgEBBA6WPx4YxBODium8BKDw0A==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp112r1_PUB
-----BEGIN PUBLIC KEY-----
MDIwEAYHKoZIzj0CAQYFK4EEAAYDHgAEchh3iQdPN1rrzrpdZRQ95G6tvdwEBQ+gfu1tvA==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp112r1:BOB_cf_secp112r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp112r1
PeerKey=BOB_cf_secp112r1_PUB
SharedSecret=4ddd1d504b444d4be67ba2e4610a
# ECDH Bob with Alice peer
Derive=BOB_cf_secp112r1
PeerKey=ALICE_cf_secp112r1_PUB
SharedSecret=4ddd1d504b444d4be67ba2e4610a
Title=secp112r2 curve tests
PrivateKey=ALICE_cf_secp112r2
-----BEGIN PRIVATE KEY-----
MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAcEFTATAgEBBA4GcvIx97ePHdAiH0Z9EA==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp112r2_PUB
-----BEGIN PUBLIC KEY-----
MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEHK9uNAILHBmPZdKKh79/nzYE0HbvC//rA7i0Xw==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp112r2:ALICE_cf_secp112r2_PUB
PrivateKey=BOB_cf_secp112r2
-----BEGIN PRIVATE KEY-----
MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAcEFTATAgEBBA4WzpVFZnZv9mvtpnYNyw==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp112r2_PUB
-----BEGIN PUBLIC KEY-----
MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEUzBLNQupqUpGgmZl9JVjKBpwusl52rFg5OVFJA==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp112r2:BOB_cf_secp112r2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp112r2
PeerKey=BOB_cf_secp112r2_PUB
SharedSecret=a6d05c7ba5128a9685c705b5030b
# ECDH Bob with Alice peer
Derive=BOB_cf_secp112r2
PeerKey=ALICE_cf_secp112r2_PUB
SharedSecret=a6d05c7ba5128a9685c705b5030b
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_secp112r2
PeerKey=BOB_cf_secp112r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=04f3280e92c269d794aa779efcef
# ECC CDH Bob with Alice peer
Derive=BOB_cf_secp112r2
PeerKey=ALICE_cf_secp112r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=04f3280e92c269d794aa779efcef
PublicKey=MALICE_cf_secp112r2_PUB
-----BEGIN PUBLIC KEY-----
MDIwEAYHKoZIzj0CAQYFK4EEAAcDHgAEsf2N4SfUZWtXPrUTmEyr71I/JSn8VtzQsFHuqQ==
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_secp112r2
PeerKey=MALICE_cf_secp112r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_secp112r2
PeerKey=MALICE_cf_secp112r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=secp128r1 curve tests
PrivateKey=ALICE_cf_secp128r1
-----BEGIN PRIVATE KEY-----
MC4CAQAwEAYHKoZIzj0CAQYFK4EEABwEFzAVAgEBBBB+RX18d0+gKpdcKbJJTrEZ
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp128r1_PUB
-----BEGIN PUBLIC KEY-----
MDYwEAYHKoZIzj0CAQYFK4EEABwDIgAEG0XMAdrAZOPUW6L9ADU8XK8sZr7dtIcDinSWU1zSV9s=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp128r1:ALICE_cf_secp128r1_PUB
PrivateKey=BOB_cf_secp128r1
-----BEGIN PRIVATE KEY-----
MC4CAQAwEAYHKoZIzj0CAQYFK4EEABwEFzAVAgEBBBB/J9/eClt9mimGwOcOsjJF
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp128r1_PUB
-----BEGIN PUBLIC KEY-----
MDYwEAYHKoZIzj0CAQYFK4EEABwDIgAE82nknsOS+u8mybP0KJqQhvm83gbPNTZOcvm0ZDVR5sU=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp128r1:BOB_cf_secp128r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp128r1
PeerKey=BOB_cf_secp128r1_PUB
SharedSecret=5020f1b759da1f737a61a29a268d7669
# ECDH Bob with Alice peer
Derive=BOB_cf_secp128r1
PeerKey=ALICE_cf_secp128r1_PUB
SharedSecret=5020f1b759da1f737a61a29a268d7669
Title=secp128r2 curve tests
PrivateKey=ALICE_cf_secp128r2
-----BEGIN PRIVATE KEY-----
MC4CAQAwEAYHKoZIzj0CAQYFK4EEAB0EFzAVAgEBBBALPaUYCnPgNiLhez93Z1Gi
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp128r2_PUB
-----BEGIN PUBLIC KEY-----
MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAEOKiPRGtZXwxmvTr35NmUkNsAGGk9RKNA4D5BE9ZrjZQ=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp128r2:ALICE_cf_secp128r2_PUB
PrivateKey=BOB_cf_secp128r2
-----BEGIN PRIVATE KEY-----
MC4CAQAwEAYHKoZIzj0CAQYFK4EEAB0EFzAVAgEBBBARg3vb436QgyHdyt6l/b6G
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp128r2_PUB
-----BEGIN PUBLIC KEY-----
MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAELph7h27BYjIINC2EddcpIOxKbdz8Xe7h3Az1ZuR9bAI=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp128r2:BOB_cf_secp128r2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp128r2
PeerKey=BOB_cf_secp128r2_PUB
SharedSecret=8f4d8c75141e9b084328222440eb5dfa
# ECDH Bob with Alice peer
Derive=BOB_cf_secp128r2
PeerKey=ALICE_cf_secp128r2_PUB
SharedSecret=8f4d8c75141e9b084328222440eb5dfa
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_secp128r2
PeerKey=BOB_cf_secp128r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=baaa0c16e16eef291001475d638e4830
# ECC CDH Bob with Alice peer
Derive=BOB_cf_secp128r2
PeerKey=ALICE_cf_secp128r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=baaa0c16e16eef291001475d638e4830
PublicKey=MALICE_cf_secp128r2_PUB
-----BEGIN PUBLIC KEY-----
MDYwEAYHKoZIzj0CAQYFK4EEAB0DIgAE6h6RzJIp6HLR6RDOPtyzGDurkuE9aAaZqHosPTnkLxQ=
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_secp128r2
PeerKey=MALICE_cf_secp128r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_secp128r2
PeerKey=MALICE_cf_secp128r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=secp160k1 curve tests
PrivateKey=ALICE_cf_secp160k1
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAkEHDAaAgEBBBUAlxTBO50KwFwWKPtk1rutu68m+zI=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp160k1_PUB
-----BEGIN PUBLIC KEY-----
MD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAEcVWIjtPZn1cHckclpn5jKDCphQUVHxFN5tSeFG9wsJZT
EvqPyLS64w==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp160k1:ALICE_cf_secp160k1_PUB
PrivateKey=BOB_cf_secp160k1
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAkEHDAaAgEBBBUAdrPkoNkRVUloiuwzruQszSUuwpY=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp160k1_PUB
-----BEGIN PUBLIC KEY-----
MD4wEAYHKoZIzj0CAQYFK4EEAAkDKgAESGN41cAj8Fg4pAJM7FUKHiawbCR0b9unMpZWxqOKeW1/
bxT/CqEkyw==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp160k1:BOB_cf_secp160k1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp160k1
PeerKey=BOB_cf_secp160k1_PUB
SharedSecret=b738a0bf17f3271a9a155bfdfe2f0f1d51494d42
# ECDH Bob with Alice peer
Derive=BOB_cf_secp160k1
PeerKey=ALICE_cf_secp160k1_PUB
SharedSecret=b738a0bf17f3271a9a155bfdfe2f0f1d51494d42
Title=secp160r1 curve tests
PrivateKey=ALICE_cf_secp160r1
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAgEHDAaAgEBBBUAR6m1+jIBuJnSKx9fHmyAYhsnYe8=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp160r1_PUB
-----BEGIN PUBLIC KEY-----
MD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEO78GZuBaCfJjHK97c9N21z+4mm37b5x7/Hr3Xc4pUbtb
OoNj/A+W9w==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp160r1:ALICE_cf_secp160r1_PUB
PrivateKey=BOB_cf_secp160r1
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAgEHDAaAgEBBBUATqvd54Jj7TbnrLAd2dMYCpExLws=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp160r1_PUB
-----BEGIN PUBLIC KEY-----
MD4wEAYHKoZIzj0CAQYFK4EEAAgDKgAEBKDbBSPTwmb00MFvMtJMxQ2YDmcPOZHE8YbVr5hp8s5J
Jwy17FaNNg==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp160r1:BOB_cf_secp160r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp160r1
PeerKey=BOB_cf_secp160r1_PUB
SharedSecret=1912ea7b9bb1de5b8d3cef83e7a6e7a917816541
# ECDH Bob with Alice peer
Derive=BOB_cf_secp160r1
PeerKey=ALICE_cf_secp160r1_PUB
SharedSecret=1912ea7b9bb1de5b8d3cef83e7a6e7a917816541
Title=secp160r2 curve tests
PrivateKey=ALICE_cf_secp160r2
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAB4EHDAaAgEBBBUA3IsVg4R4paXaPATDHvzfnvM+vjQ=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp160r2_PUB
-----BEGIN PUBLIC KEY-----
MD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAE4V+25YCpVkKF6NF/UPc1SYxohYWcf3qT3JDoPRhnm/rj
mSqCCA6gUw==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp160r2:ALICE_cf_secp160r2_PUB
PrivateKey=BOB_cf_secp160r2
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAB4EHDAaAgEBBBUAYT/5C7UpD17DnZm4ObswmGFMI1Q=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp160r2_PUB
-----BEGIN PUBLIC KEY-----
MD4wEAYHKoZIzj0CAQYFK4EEAB4DKgAEB7YVzBmzhnIdouvN/nb8VMXCqO8dkhmebyVzoD0oAzuH
nN+SfWr6aQ==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp160r2:BOB_cf_secp160r2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp160r2
PeerKey=BOB_cf_secp160r2_PUB
SharedSecret=ccb9cae5c9487ff60c487bd1b39a62eb4680e9b6
# ECDH Bob with Alice peer
Derive=BOB_cf_secp160r2
PeerKey=ALICE_cf_secp160r2_PUB
SharedSecret=ccb9cae5c9487ff60c487bd1b39a62eb4680e9b6
Title=secp192k1 curve tests
PrivateKey=ALICE_cf_secp192k1
-----BEGIN PRIVATE KEY-----
MDYCAQAwEAYHKoZIzj0CAQYFK4EEAB8EHzAdAgEBBBikVZrCZQB7ZtkhNfQYpjKHZ9KxXgooJ90=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp192k1_PUB
-----BEGIN PUBLIC KEY-----
MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAEyV4EzMZglBXtYdn38hNTrCGflAsJprMkxkOlw58chZ25
6EAu7gVvYDTpnRkymKyH
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp192k1:ALICE_cf_secp192k1_PUB
PrivateKey=BOB_cf_secp192k1
-----BEGIN PRIVATE KEY-----
MDYCAQAwEAYHKoZIzj0CAQYFK4EEAB8EHzAdAgEBBBiJQ/PunKGk9QPUyqIBGMgHKKg+yxJr5io=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp192k1_PUB
-----BEGIN PUBLIC KEY-----
MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAE990Tnmh9QQQHVHuLpfrAsgjvB9R2MJXzhBZN1WvtxLqF
OZ2oFMP0Kfcr7HbI7a5j
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp192k1:BOB_cf_secp192k1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp192k1
PeerKey=BOB_cf_secp192k1_PUB
SharedSecret=a46a6bfb279d4dc30cffac585d1fbec905dbe46aca5e3c9d
# ECDH Bob with Alice peer
Derive=BOB_cf_secp192k1
PeerKey=ALICE_cf_secp192k1_PUB
SharedSecret=a46a6bfb279d4dc30cffac585d1fbec905dbe46aca5e3c9d
Title=secp224k1 curve tests
PrivateKey=ALICE_cf_secp224k1
-----BEGIN PRIVATE KEY-----
MDsCAQAwEAYHKoZIzj0CAQYFK4EEACAEJDAiAgEBBB0AZPk3TzxGhX7TljBBhJDLBfulAMp6Bh3W
w40Qyg==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp224k1_PUB
-----BEGIN PUBLIC KEY-----
ME4wEAYHKoZIzj0CAQYFK4EEACADOgAE4o7LGdJDixqJZ5imnqaX4IeE55NG4W0HEe72LVC7pmn2
e3m7uC92ZQhduF9lJli4dXD5en/1wkE=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp224k1:ALICE_cf_secp224k1_PUB
PrivateKey=BOB_cf_secp224k1
-----BEGIN PRIVATE KEY-----
MDsCAQAwEAYHKoZIzj0CAQYFK4EEACAEJDAiAgEBBB0AdQ02GguRy3yHOjLkpoWb27QA/L1abfWe
q2xUfA==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp224k1_PUB
-----BEGIN PUBLIC KEY-----
ME4wEAYHKoZIzj0CAQYFK4EEACADOgAEzp00m0DaADn1mGiDCT7K1LZnoj/vCxHPowUDC9yQd17K
KpJM5sGILrTkkgxqtt5pBeYE1NC1QUQ=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp224k1:BOB_cf_secp224k1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp224k1
PeerKey=BOB_cf_secp224k1_PUB
SharedSecret=6f7b9d16c9c1d3a5c84b6028f2a4fed9ae8e02455e678a27243bcc48
# ECDH Bob with Alice peer
Derive=BOB_cf_secp224k1
PeerKey=ALICE_cf_secp224k1_PUB
SharedSecret=6f7b9d16c9c1d3a5c84b6028f2a4fed9ae8e02455e678a27243bcc48
Title=secp224r1 curve tests
PrivateKey=ALICE_cf_secp224r1
-----BEGIN PRIVATE KEY-----
MDoCAQAwEAYHKoZIzj0CAQYFK4EEACEEIzAhAgEBBBzeo7Y0HMfrIqKNm3r997jcfVAa4osa0AR2
JA28
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp224r1_PUB
-----BEGIN PUBLIC KEY-----
ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAExZc6o84XjBGLOosGj2t0QctgiyzF3NcVgy+DeW7stkVs
yS2tRzMPBpwnApRzoRsdJR99sb3eM2s=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp224r1:ALICE_cf_secp224r1_PUB
PrivateKey=BOB_cf_secp224r1
-----BEGIN PRIVATE KEY-----
MDoCAQAwEAYHKoZIzj0CAQYFK4EEACEEIzAhAgEBBBy2LsqxHhdlSiAmMYKQAEmjJWT22T42GYKo
ZvXM
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp224r1_PUB
-----BEGIN PUBLIC KEY-----
ME4wEAYHKoZIzj0CAQYFK4EEACEDOgAE71Eh6hwTKUrmyl2PdkY787GwxiohIcaqB4eK2Mwg6tU4
LeJHWcgY18CgPKCaeldUgnkMcJzKj20=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp224r1:BOB_cf_secp224r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp224r1
PeerKey=BOB_cf_secp224r1_PUB
SharedSecret=29d8b75934d74d5153bbb94e0370437c63ecc30bf3d2800ed1cb7eb5
# ECDH Bob with Alice peer
Derive=BOB_cf_secp224r1
PeerKey=ALICE_cf_secp224r1_PUB
SharedSecret=29d8b75934d74d5153bbb94e0370437c63ecc30bf3d2800ed1cb7eb5
Title=secp256k1 curve tests
PrivateKey=ALICE_cf_secp256k1
-----BEGIN PRIVATE KEY-----
MD4CAQAwEAYHKoZIzj0CAQYFK4EEAAoEJzAlAgEBBCDV8jMZ/aJfiMEkW7HsYqbT57Y7vmvm5KN/
QEXqsNCSpw==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp256k1_PUB
-----BEGIN PUBLIC KEY-----
MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAElytZZZHc9CelGzZkNGpzY2CHQ+3z6tUnfsQxUmtiZnUg
7oKfQC5BV8pZ5WYNPWnbT0RRg5kyBtzry9oQIhO5Lw==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp256k1:ALICE_cf_secp256k1_PUB
PrivateKey=BOB_cf_secp256k1
-----BEGIN PRIVATE KEY-----
MD4CAQAwEAYHKoZIzj0CAQYFK4EEAAoEJzAlAgEBBCBh7awFyPey/w4pKBycpAlhvT4DlLQsi1TT
BxJPHrAjrA==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp256k1_PUB
-----BEGIN PUBLIC KEY-----
MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE2BQeSJOa7kJAQsAPUbLseHjHhMe3tUOAl3bqoDqtrfO+
2m2MP/IC/R9Kof2nmaiQ6DostdbS8kB+CnnprK375w==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp256k1:BOB_cf_secp256k1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp256k1
PeerKey=BOB_cf_secp256k1_PUB
SharedSecret=a4745cc4d19cabb9e5cb0abdd5c604cab2846a4638ad844ed9175f3cadda2da1
# ECDH Bob with Alice peer
Derive=BOB_cf_secp256k1
PeerKey=ALICE_cf_secp256k1_PUB
SharedSecret=a4745cc4d19cabb9e5cb0abdd5c604cab2846a4638ad844ed9175f3cadda2da1
Title=secp384r1 curve tests
PrivateKey=ALICE_cf_secp384r1
-----BEGIN PRIVATE KEY-----
ME4CAQAwEAYHKoZIzj0CAQYFK4EEACIENzA1AgEBBDAp1ErG6wVjuJs90qVbUBxNpQK1wtV4ieX1
bIU/4HssZK6WjOOTyYguyEBCOf/rUnw=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp384r1_PUB
-----BEGIN PUBLIC KEY-----
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEx5rt+yujIuPoIXpHGmExKSi/P+58sGYoqgdpdOJUXzn2
Rc4alCpSxVJeC55xvwaFHc3pzNyRGwnhPmN6oU/KMP6XjBvR4wq35mr/Sym5s0B2blAzkJU37idq
nTi3xGHx
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp384r1:ALICE_cf_secp384r1_PUB
PrivateKey=BOB_cf_secp384r1
-----BEGIN PRIVATE KEY-----
ME4CAQAwEAYHKoZIzj0CAQYFK4EEACIENzA1AgEBBDAUjVgPpiI+xXye0nfRhc8+12hLdWY4fpsO
Jq2MCp+W85xJwtXsEPrHj1XFnKVpM4c=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp384r1_PUB
-----BEGIN PUBLIC KEY-----
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE+JUBXRSHixH0TrcvYvIzep7+/WNpEhWdCPsLMygigW5j
pzP30MF41GnQYgfJu5wI/gu1C/jFTv1X6Dgmla3JxBYlPeD+1L0lEMT3evmHKMM/BFe3WKBuXyhP
ilrNtfee
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp384r1:BOB_cf_secp384r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp384r1
PeerKey=BOB_cf_secp384r1_PUB
SharedSecret=b3cfe488126e2731fb7c19f82e94fcc05e1dd303649a9257e858030b795c2d344a054b0c44a24fd7f5821f531a9b8cfb
# ECDH Bob with Alice peer
Derive=BOB_cf_secp384r1
PeerKey=ALICE_cf_secp384r1_PUB
SharedSecret=b3cfe488126e2731fb7c19f82e94fcc05e1dd303649a9257e858030b795c2d344a054b0c44a24fd7f5821f531a9b8cfb
Title=secp521r1 curve tests
PrivateKey=ALICE_cf_secp521r1
-----BEGIN PRIVATE KEY-----
MGACAQAwEAYHKoZIzj0CAQYFK4EEACMESTBHAgEBBEIBsYIcUKeN2evB626LCdYWH/xzUiEDCdRP
rEENsC8//dowKnOCtlLtawh0DXTIZ/HhpUREuaoffdsmYb6+Oq1TRjc=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_secp521r1_PUB
-----BEGIN PUBLIC KEY-----
MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBufYxJf/4Ds6g7LlFRVS62ljm3xApV2T79hfWH8Lv
iroIaCFjLBIfOVDF8jvj2PO1ar3yCLiSA2RiLZz1Y+tv/tcATHE0nS7l3SfGiGmEnVycEnhgqlKM
UM3kpdd7eNkQn5/GO8KAPQqA/sOnvTavg5S01t0ub+PY/w0Y6oBgthaUAW0=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_secp521r1:ALICE_cf_secp521r1_PUB
PrivateKey=BOB_cf_secp521r1
-----BEGIN PRIVATE KEY-----
MGACAQAwEAYHKoZIzj0CAQYFK4EEACMESTBHAgEBBEIB+3/adZnNwr6GFUzZpi8So7pC/5FYQ0+0
lMmoUjGvy8DNADcHaPpW68hX/M+z7LrK0Jpnonb9JSEXlgjOPVe4Ea8=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_secp521r1_PUB
-----BEGIN PUBLIC KEY-----
MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBLq2fjyCalnvr24tjaz87ijIWlLMoCH7Hmyq1t2l8
PFbyBIZbngDC0gwFM5ZI582QSWlW79G3clJP9VxlJOsms50BYBYgd6o2JF4w8AnShVXxFSJU1py4
klCDNhTFybRHFXpujfuUeNnFxAGIUb4edJ0fAqqc7kkERhYe8EPEZYMKp3Q=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_secp521r1:BOB_cf_secp521r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_secp521r1
PeerKey=BOB_cf_secp521r1_PUB
SharedSecret=01dd4aa9037bb4ad298b420998dcd32b3a9af1cda8b7919e372aeb4e54ccfb4d2409a340ed896bfbc5dd462f8d96b8784bc17b29db3ca04700e6ec752f9bec777695
# ECDH Bob with Alice peer
Derive=BOB_cf_secp521r1
PeerKey=ALICE_cf_secp521r1_PUB
SharedSecret=01dd4aa9037bb4ad298b420998dcd32b3a9af1cda8b7919e372aeb4e54ccfb4d2409a340ed896bfbc5dd462f8d96b8784bc17b29db3ca04700e6ec752f9bec777695
Title=sect113r1 curve tests
PrivateKey=ALICE_cf_sect113r1
-----BEGIN PRIVATE KEY-----
MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAQEFjAUAgEBBA8ALw9CgsuNBkkhhUHE8bQ=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect113r1_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEASO9jcamlg1pRE7JffrTAe9kyRZO2xrymHXoGdnA
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect113r1:ALICE_cf_sect113r1_PUB
PrivateKey=BOB_cf_sect113r1
-----BEGIN PRIVATE KEY-----
MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAQEFjAUAgEBBA8A/9qbs8sTFNkjS9/4CuM=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect113r1_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEATykaf/cvJzLOUto1EbbAEz/3++nut6q0dcJOQeV
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect113r1:BOB_cf_sect113r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect113r1
PeerKey=BOB_cf_sect113r1_PUB
SharedSecret=01ed16f1948dcb368a54004237842d
# ECDH Bob with Alice peer
Derive=BOB_cf_sect113r1
PeerKey=ALICE_cf_sect113r1_PUB
SharedSecret=01ed16f1948dcb368a54004237842d
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect113r1
PeerKey=BOB_cf_sect113r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=012e5f3e348c2a8a88d9590a639219
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect113r1
PeerKey=ALICE_cf_sect113r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=012e5f3e348c2a8a88d9590a639219
PublicKey=MALICE_cf_sect113r1_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFK4EEAAQDIAAEAAAAAAAAAAAAAAAAAAAAAd+TqiBXnTd/lyA/OFsR
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect113r1
PeerKey=MALICE_cf_sect113r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect113r1
PeerKey=MALICE_cf_sect113r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect113r2 curve tests
PrivateKey=ALICE_cf_sect113r2
-----BEGIN PRIVATE KEY-----
MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAUEFjAUAgEBBA8AvovirHrqTxoKJ3l+7y0=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect113r2_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAFvQ4JgQTS8kjGeVfuITAS81qNcOQvt3PYa1HuCk
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect113r2:ALICE_cf_sect113r2_PUB
PrivateKey=BOB_cf_sect113r2
-----BEGIN PRIVATE KEY-----
MC0CAQAwEAYHKoZIzj0CAQYFK4EEAAUEFjAUAgEBBA8ArUjgvp/goxRYb4WuQ80=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect113r2_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAUoS3of8y28meYu/NoI5AVdhJZCuDjMqFHTriWY4
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect113r2:BOB_cf_sect113r2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect113r2
PeerKey=BOB_cf_sect113r2_PUB
SharedSecret=0057a287ba1ea05cb4735e673647e1
# ECDH Bob with Alice peer
Derive=BOB_cf_sect113r2
PeerKey=ALICE_cf_sect113r2_PUB
SharedSecret=0057a287ba1ea05cb4735e673647e1
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect113r2
PeerKey=BOB_cf_sect113r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=00fec2454e46732aca42b22b6d4f13
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect113r2
PeerKey=ALICE_cf_sect113r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=00fec2454e46732aca42b22b6d4f13
PublicKey=MALICE_cf_sect113r2_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFK4EEAAUDIAAEAAAAAAAAAAAAAAAAAAAAAR3dbPHrhFekzJ7Azskr
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect113r2
PeerKey=MALICE_cf_sect113r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect113r2
PeerKey=MALICE_cf_sect113r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect131r1 curve tests
PrivateKey=ALICE_cf_sect131r1
-----BEGIN PRIVATE KEY-----
MC8CAQAwEAYHKoZIzj0CAQYFK4EEABYEGDAWAgEBBBEA5C6zHMQM7pXPZ6cJz72Niw==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect131r1_PUB
-----BEGIN PUBLIC KEY-----
MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEBXCuXD6wOOif91GUlJNKXf8FBNw8crgqi5aEJEZbCdBJ
Ag==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect131r1:ALICE_cf_sect131r1_PUB
PrivateKey=BOB_cf_sect131r1
-----BEGIN PRIVATE KEY-----
MC8CAQAwEAYHKoZIzj0CAQYFK4EEABYEGDAWAgEBBBEDYZmjiokBJ/SnTv8sskBR3A==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect131r1_PUB
-----BEGIN PUBLIC KEY-----
MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEB8vGy3OQXwWKcJUSSJbCtpMBjFgJeZxzAaI420+B1B+1
5A==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect131r1:BOB_cf_sect131r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect131r1
PeerKey=BOB_cf_sect131r1_PUB
SharedSecret=05346248f77f81fff50cc656e119976871
# ECDH Bob with Alice peer
Derive=BOB_cf_sect131r1
PeerKey=ALICE_cf_sect131r1_PUB
SharedSecret=05346248f77f81fff50cc656e119976871
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect131r1
PeerKey=BOB_cf_sect131r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=01f151ae26efa507acc2597356baf7e8ab
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect131r1
PeerKey=ALICE_cf_sect131r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=01f151ae26efa507acc2597356baf7e8ab
PublicKey=MALICE_cf_sect131r1_PUB
-----BEGIN PUBLIC KEY-----
MDgwEAYHKoZIzj0CAQYFK4EEABYDJAAEAAAAAAAAAAAAAAAAAAAAAAABfiJEFG0vRzEGxk2BxjmK
zw==
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect131r1
PeerKey=MALICE_cf_sect131r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect131r1
PeerKey=MALICE_cf_sect131r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect131r2 curve tests
PrivateKey=ALICE_cf_sect131r2
-----BEGIN PRIVATE KEY-----
MC8CAQAwEAYHKoZIzj0CAQYFK4EEABcEGDAWAgEBBBEBnZRUKAQetk5kyUwhIaAyxg==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect131r2_PUB
-----BEGIN PUBLIC KEY-----
MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEA5+Y20L8q989I4jnKknZ7hcGlQ6RUIGni9RahT88kB/d
dw==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect131r2:ALICE_cf_sect131r2_PUB
PrivateKey=BOB_cf_sect131r2
-----BEGIN PRIVATE KEY-----
MC8CAQAwEAYHKoZIzj0CAQYFK4EEABcEGDAWAgEBBBEBnafx9vcMeoCqj/1YNuflzw==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect131r2_PUB
-----BEGIN PUBLIC KEY-----
MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEB2G2uNkhQNjjl0/Ov6UYpxoFaWNXO+qy7poV6cdrFN7z
pA==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect131r2:BOB_cf_sect131r2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect131r2
PeerKey=BOB_cf_sect131r2_PUB
SharedSecret=058d8a8be33068ed8c1dc9f551ef2c3f3c
# ECDH Bob with Alice peer
Derive=BOB_cf_sect131r2
PeerKey=ALICE_cf_sect131r2_PUB
SharedSecret=058d8a8be33068ed8c1dc9f551ef2c3f3c
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect131r2
PeerKey=BOB_cf_sect131r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=037b16d85f27c2c878ef96c79a536f89a5
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect131r2
PeerKey=ALICE_cf_sect131r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=037b16d85f27c2c878ef96c79a536f89a5
PublicKey=MALICE_cf_sect131r2_PUB
-----BEGIN PUBLIC KEY-----
MDgwEAYHKoZIzj0CAQYFK4EEABcDJAAEAAAAAAAAAAAAAAAAAAAAAAAGG5fiIbgziwBZHVzTYqCY
1w==
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect131r2
PeerKey=MALICE_cf_sect131r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect131r2
PeerKey=MALICE_cf_sect131r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect163k1 curve tests
PrivateKey=ALICE_cf_sect163k1
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAEEHDAaAgEBBBUB905PYfmej8LzbzX6Bg51GJzXQjQ=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect163k1_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBfvs5A1hD8YySP9O2ub8GEUfotVuBpfRx4GIHdAfx8wV
1UVeTRnyAlWU
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect163k1:ALICE_cf_sect163k1_PUB
PrivateKey=BOB_cf_sect163k1
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAEEHDAaAgEBBBUCHPtCjJ4/K8ylQBcLlb5VE0bkaUE=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect163k1_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEBvgfX1mTRlt6Z4TE1D1MNWo4loH4AoeYa6oowK104LKk
nsdg7isQ8XBD
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect163k1:BOB_cf_sect163k1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect163k1
PeerKey=BOB_cf_sect163k1_PUB
SharedSecret=04d0e40788c5ce5220818055277cae53eac55c1e6b
# ECDH Bob with Alice peer
Derive=BOB_cf_sect163k1
PeerKey=ALICE_cf_sect163k1_PUB
SharedSecret=04d0e40788c5ce5220818055277cae53eac55c1e6b
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect163k1
PeerKey=BOB_cf_sect163k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=04c902a91110244d89110034dd2b099c49cbab6c77
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect163k1
PeerKey=ALICE_cf_sect163k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=04c902a91110244d89110034dd2b099c49cbab6c77
PublicKey=MALICE_cf_sect163k1_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFK4EEAAEDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAB
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect163k1
PeerKey=MALICE_cf_sect163k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect163k1
PeerKey=MALICE_cf_sect163k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect163r1 curve tests
PrivateKey=ALICE_cf_sect163r1
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAIEHDAaAgEBBBUAlbn4x1UGJnAimsXufB/UvUaxU5U=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect163r1_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEA0f195HCcD4D+7wWyl3QuPkRovG/ATy5l7fpMl4BNIg/
sbtEXluCzANF
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect163r1:ALICE_cf_sect163r1_PUB
PrivateKey=BOB_cf_sect163r1
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAAIEHDAaAgEBBBUAoStq6Fjb7nB2PNL6WrzKKqhCGdE=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect163r1_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEAul/oBKr9B5MsPHWGF+q07j0JC+WAxj1JzfcIXR98n+r
9FHWU5LC5pDM
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect163r1:BOB_cf_sect163r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect163r1
PeerKey=BOB_cf_sect163r1_PUB
SharedSecret=06135eef489fe613c0d8bd522a2a640ff7ae6fb73d
# ECDH Bob with Alice peer
Derive=BOB_cf_sect163r1
PeerKey=ALICE_cf_sect163r1_PUB
SharedSecret=06135eef489fe613c0d8bd522a2a640ff7ae6fb73d
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect163r1
PeerKey=BOB_cf_sect163r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=0580f5e8efb242a19ae1023acbcab8702c799751e7
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect163r1
PeerKey=ALICE_cf_sect163r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=0580f5e8efb242a19ae1023acbcab8702c799751e7
PublicKey=MALICE_cf_sect163r1_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFK4EEAAIDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkXolVuGFa8fqmk
cs0Bv7iJuVg1
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect163r1
PeerKey=MALICE_cf_sect163r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect163r1
PeerKey=MALICE_cf_sect163r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect163r2 curve tests
PrivateKey=ALICE_cf_sect163r2
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAA8EHDAaAgEBBBUBjCs/M3N31jsAueYrOq21vdETwAI=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect163r2_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBd8Z1/HpA+89hF4I98EST3svWns3BAEbhWmL/fgxk2uu
YwVrmqhgqH/C
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect163r2:ALICE_cf_sect163r2_PUB
PrivateKey=BOB_cf_sect163r2
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFK4EEAA8EHDAaAgEBBBUBsiouT9Df+mwHWrpPg1JSrY9nqlI=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect163r2_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEBULqBZ+nhLhDEMYY8NEEzZ126MdxAcFXWv8zmPEH9505
8vT5zU3aq6HV
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect163r2:BOB_cf_sect163r2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect163r2
PeerKey=BOB_cf_sect163r2_PUB
SharedSecret=019f829a53c4e6544bdec1395a23082169efaf369d
# ECDH Bob with Alice peer
Derive=BOB_cf_sect163r2
PeerKey=ALICE_cf_sect163r2_PUB
SharedSecret=019f829a53c4e6544bdec1395a23082169efaf369d
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect163r2
PeerKey=BOB_cf_sect163r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=048870d39235ecbc16a000ee478833509b9318a53f
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect163r2
PeerKey=ALICE_cf_sect163r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=048870d39235ecbc16a000ee478833509b9318a53f
PublicKey=MALICE_cf_sect163r2_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFK4EEAA8DLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJbhbrfiSdZPSHD
ZtqJwDlp802l
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect163r2
PeerKey=MALICE_cf_sect163r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect163r2
PeerKey=MALICE_cf_sect163r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect193r1 curve tests
PrivateKey=ALICE_cf_sect193r1
-----BEGIN PRIVATE KEY-----
MDcCAQAwEAYHKoZIzj0CAQYFK4EEABgEIDAeAgEBBBkACmcvidKWLtPFB2xqg76F8VhM1Njzrkgo
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect193r1_PUB
-----BEGIN PUBLIC KEY-----
MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAeqP0VQobenduwtf4MPmlYQVDjUmxKq50QFHnaBfzwXY
1TYShZZgBr0R6a5dUGCbiF0=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect193r1:ALICE_cf_sect193r1_PUB
PrivateKey=BOB_cf_sect193r1
-----BEGIN PRIVATE KEY-----
MDcCAQAwEAYHKoZIzj0CAQYFK4EEABgEIDAeAgEBBBkAKlSknQ66vpuLjC1mbQyfHOTdJ5Kw5jMh
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect193r1_PUB
-----BEGIN PUBLIC KEY-----
MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAaFZVIeqfV9wbPydaBSJKSWJjVyFVSB/QQB5rHonYQmK
f40zok8PJS6ratIcZwk/n20=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect193r1:BOB_cf_sect193r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect193r1
PeerKey=BOB_cf_sect193r1_PUB
SharedSecret=012b8849991814f8c7ed9d40cf9dc204c3a83e0b10675543a5
# ECDH Bob with Alice peer
Derive=BOB_cf_sect193r1
PeerKey=ALICE_cf_sect193r1_PUB
SharedSecret=012b8849991814f8c7ed9d40cf9dc204c3a83e0b10675543a5
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect193r1
PeerKey=BOB_cf_sect193r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=0110180a18844859c52f6f012909522a2d87b5ab143bc80a55
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect193r1
PeerKey=ALICE_cf_sect193r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=0110180a18844859c52f6f012909522a2d87b5ab143bc80a55
PublicKey=MALICE_cf_sect193r1_PUB
-----BEGIN PUBLIC KEY-----
MEgwEAYHKoZIzj0CAQYFK4EEABgDNAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeX7PX3e5n
zROUg6/STkLp1D+L51L9+wY=
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect193r1
PeerKey=MALICE_cf_sect193r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect193r1
PeerKey=MALICE_cf_sect193r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect193r2 curve tests
PrivateKey=ALICE_cf_sect193r2
-----BEGIN PRIVATE KEY-----
MDcCAQAwEAYHKoZIzj0CAQYFK4EEABkEIDAeAgEBBBkAhjkv8lXK/nPp3Qc4IwL/29JUKWi2VBMp
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect193r2_PUB
-----BEGIN PUBLIC KEY-----
MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEAIn7oSu3adu4ChNXniHKkMIv9gT24rpzzwAeCTDPIkUT
kJ+Tit6e4RpgkB/dph4V+uI=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect193r2:ALICE_cf_sect193r2_PUB
PrivateKey=BOB_cf_sect193r2
-----BEGIN PRIVATE KEY-----
MDcCAQAwEAYHKoZIzj0CAQYFK4EEABkEIDAeAgEBBBkAwGkR3qSQdfh7Q6KbJ4lH5FShGsX8o/jD
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect193r2_PUB
-----BEGIN PUBLIC KEY-----
MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEAFdSLKI0tlwZDpkndutOLsnHii1aJO8snwEJ0m/AZgMp
xiDevOQ/xE9SpMX25W7YqkU=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect193r2:BOB_cf_sect193r2_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect193r2
PeerKey=BOB_cf_sect193r2_PUB
SharedSecret=01e2f66a63c24c1de8a399c484228a5ad5b6d911c6e5e83ae3
# ECDH Bob with Alice peer
Derive=BOB_cf_sect193r2
PeerKey=ALICE_cf_sect193r2_PUB
SharedSecret=01e2f66a63c24c1de8a399c484228a5ad5b6d911c6e5e83ae3
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect193r2
PeerKey=BOB_cf_sect193r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=00bc82d393bd74406683aea003977a86a109f444a833652e43
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect193r2
PeerKey=ALICE_cf_sect193r2_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=00bc82d393bd74406683aea003977a86a109f444a833652e43
PublicKey=MALICE_cf_sect193r2_PUB
-----BEGIN PUBLIC KEY-----
MEgwEAYHKoZIzj0CAQYFK4EEABkDNAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFfdLEkrvsO
Y7+6QpEvOay9A4MJCUZfZmI=
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect193r2
PeerKey=MALICE_cf_sect193r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect193r2
PeerKey=MALICE_cf_sect193r2_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect233k1 curve tests
PrivateKey=ALICE_cf_sect233k1
-----BEGIN PRIVATE KEY-----
MDsCAQAwEAYHKoZIzj0CAQYFK4EEABoEJDAiAgEBBB0z/3heNFjJL+2sAT/38yRsN3kt2iXz7u+y
Gua8Kw==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect233k1_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEALQyn0zJmOrHm4S2EIjxRe899PadBnfpYjLKWGvpAIzf
MEG861Nv1IYJkmkO1xlfNHeeRtqFgsQVFKZh
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect233k1:ALICE_cf_sect233k1_PUB
PrivateKey=BOB_cf_sect233k1
-----BEGIN PRIVATE KEY-----
MDsCAQAwEAYHKoZIzj0CAQYFK4EEABoEJDAiAgEBBB1I0ucrC4d9i6Z+0cbar5r7uKpF5iiQkSJA
DFMTUA==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect233k1_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAatdqazxSghJ568CBFyMXhEvVeAiLewOY/jk9H5DAOB4
ufNGbdd131KLaKPivB38a6n5Y+2BVSJangow
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect233k1:BOB_cf_sect233k1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect233k1
PeerKey=BOB_cf_sect233k1_PUB
SharedSecret=012145026e8de65973c154e085456fc5539ba9e25663e7f5816abfcab310
# ECDH Bob with Alice peer
Derive=BOB_cf_sect233k1
PeerKey=ALICE_cf_sect233k1_PUB
SharedSecret=012145026e8de65973c154e085456fc5539ba9e25663e7f5816abfcab310
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect233k1
PeerKey=BOB_cf_sect233k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=00ff7d6c6b80f39d2ae68fbd00adbcd75fa599ed0bc1aac0e3f49c1c164d
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect233k1
PeerKey=ALICE_cf_sect233k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=00ff7d6c6b80f39d2ae68fbd00adbcd75fa599ed0bc1aac0e3f49c1c164d
PublicKey=MALICE_cf_sect233k1_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFK4EEABoDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect233k1
PeerKey=MALICE_cf_sect233k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect233k1
PeerKey=MALICE_cf_sect233k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect233r1 curve tests
PrivateKey=ALICE_cf_sect233r1
-----BEGIN PRIVATE KEY-----
MDwCAQAwEAYHKoZIzj0CAQYFK4EEABsEJTAjAgEBBB4ATcy7zVpIsJ9rl5EIDmzRz5wxjrDIQyDm
HP3Pt8Y=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect233r1_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAQMQHiJ44LiCnZkEg1zyww1h+idTbsw8E07P33WUAUfD
NeQ4hWEhTXPnytIbEhFKpnd3j/FbyZnJqxh8
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect233r1:ALICE_cf_sect233r1_PUB
PrivateKey=BOB_cf_sect233r1
-----BEGIN PRIVATE KEY-----
MDwCAQAwEAYHKoZIzj0CAQYFK4EEABsEJTAjAgEBBB4ALpOlFn4OfiIAkRAZGOsn7L6W3XoQBSV8
mQVC2pw=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect233r1_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAJQw+NWqFJXYw4dVMovzvw76OYnYOTaDaEPNW8ECAQbl
TzzbBSTp5iqM13mP0/Bo4OO66NS3lA9e/GTO
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect233r1:BOB_cf_sect233r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect233r1
PeerKey=BOB_cf_sect233r1_PUB
SharedSecret=00209d2995a63f1e8b7a5c33dee5abb602e32e1835ae8bb57eb264d8d795
# ECDH Bob with Alice peer
Derive=BOB_cf_sect233r1
PeerKey=ALICE_cf_sect233r1_PUB
SharedSecret=00209d2995a63f1e8b7a5c33dee5abb602e32e1835ae8bb57eb264d8d795
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect233r1
PeerKey=BOB_cf_sect233r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=00c3cd1d38a65f5e421399409a76cec1136bc84149f054a7f55e7980c612
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect233r1
PeerKey=ALICE_cf_sect233r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=00c3cd1d38a65f5e421399409a76cec1136bc84149f054a7f55e7980c612
PublicKey=MALICE_cf_sect233r1_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFK4EEABsDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYf4
Vie5eHTnR+4x4G1xyq7qUvISU+X5RtBh2pE4
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect233r1
PeerKey=MALICE_cf_sect233r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect233r1
PeerKey=MALICE_cf_sect233r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect239k1 curve tests
PrivateKey=ALICE_cf_sect239k1
-----BEGIN PRIVATE KEY-----
MDwCAQAwEAYHKoZIzj0CAQYFK4EEAAMEJTAjAgEBBB4G4nbQDUtTnkrPOvDGIlhH9XdjirUSbTI5
5z6lf7o=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect239k1_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEf5paOMjzcnpVAPMQnIkikE4K2jne3ubX2TD1P3aedknF
lUr6tOU4BsiUQJACF90rQ9/KdeR5mYvYHzvI
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect239k1:ALICE_cf_sect239k1_PUB
PrivateKey=BOB_cf_sect239k1
-----BEGIN PRIVATE KEY-----
MDwCAQAwEAYHKoZIzj0CAQYFK4EEAAMEJTAjAgEBBB4e0F0NpepAF+iNrEtoZeo4TrQFspkUNLcx
Ly4Klfg=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect239k1_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEKnjJ4RHe+EiElXMrF4ou7VGy1pn0ZiO17FouF31Zbvjc
TcbhfE6ziXM8sekQJBwcwRKQ9+G/Qzq/2A9x
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect239k1:BOB_cf_sect239k1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect239k1
PeerKey=BOB_cf_sect239k1_PUB
SharedSecret=0ef54c7b7dbf55d4278e7a6924dc4833c63ec708e820d501cacdfb4935d5
# ECDH Bob with Alice peer
Derive=BOB_cf_sect239k1
PeerKey=ALICE_cf_sect239k1_PUB
SharedSecret=0ef54c7b7dbf55d4278e7a6924dc4833c63ec708e820d501cacdfb4935d5
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect239k1
PeerKey=BOB_cf_sect239k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=592e4b33ac99624fe7f2f879cf52f12a70f189c5d90785db26a12e0a46c0
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect239k1
PeerKey=ALICE_cf_sect239k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=592e4b33ac99624fe7f2f879cf52f12a70f189c5d90785db26a12e0a46c0
PublicKey=MALICE_cf_sect239k1_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFK4EEAAMDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect239k1
PeerKey=MALICE_cf_sect239k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect239k1
PeerKey=MALICE_cf_sect239k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect283k1 curve tests
PrivateKey=ALICE_cf_sect283k1
-----BEGIN PRIVATE KEY-----
MEICAQAwEAYHKoZIzj0CAQYFK4EEABAEKzApAgEBBCQAY1Mi9rST7PiP1t03qYRczV/kSZ+VjQu8
5EFCgxyvkaLManw=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect283k1_PUB
-----BEGIN PUBLIC KEY-----
MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEBMjBO8WoxHS/vz8po52WZGxS+RK5yolrUe6tfbAMA3Sd
5/JjBDVjOz95vM4gUnqzUWHN5nKBQtj6HiU9Q/R+zqg98OiQKTyA
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect283k1:ALICE_cf_sect283k1_PUB
PrivateKey=BOB_cf_sect283k1
-----BEGIN PRIVATE KEY-----
MEICAQAwEAYHKoZIzj0CAQYFK4EEABAEKzApAgEBBCQBCZC8Is+YSjgXJBBDioEl6gu14QpGHllD
1J6957vBTPSQdH0=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect283k1_PUB
-----BEGIN PUBLIC KEY-----
MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAGEQKZVHYAlvtjHrFyZVm12qUb5j+T5/WNoC962+kwUM
QkBYA5BpuG8Knlugq1iB31whPAgRCZfdLKHpHRPJSfXvKyUIdeUm
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect283k1:BOB_cf_sect283k1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect283k1
PeerKey=BOB_cf_sect283k1_PUB
SharedSecret=03f67c88bdc230b43773d17fdb4d0a980556d074ceccee726932160e4ed965e3be72803c
# ECDH Bob with Alice peer
Derive=BOB_cf_sect283k1
PeerKey=ALICE_cf_sect283k1_PUB
SharedSecret=03f67c88bdc230b43773d17fdb4d0a980556d074ceccee726932160e4ed965e3be72803c
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect283k1
PeerKey=BOB_cf_sect283k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=0677ba01c84d139609ca145cb5b6079fc9ca67f59c9c913e47cad1073f1d1dfaddde0169
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect283k1
PeerKey=ALICE_cf_sect283k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=0677ba01c84d139609ca145cb5b6079fc9ca67f59c9c913e47cad1073f1d1dfaddde0169
PublicKey=MALICE_cf_sect283k1_PUB
-----BEGIN PUBLIC KEY-----
MF4wEAYHKoZIzj0CAQYFK4EEABADSgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect283k1
PeerKey=MALICE_cf_sect283k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect283k1
PeerKey=MALICE_cf_sect283k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect283r1 curve tests
PrivateKey=ALICE_cf_sect283r1
-----BEGIN PRIVATE KEY-----
MEICAQAwEAYHKoZIzj0CAQYFK4EEABEEKzApAgEBBCQCQ5pqKvPxDysd1pi2Bv8Z11cFhsRZfuaf
4Pi0hpGr4ubZcHE=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect283r1_PUB
-----BEGIN PUBLIC KEY-----
MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBcsrGDgO7pbGybQX/00gRHtQq3+X9XrGb7Uzv9Nabwc/
kntnBMF0I2KU+aaTjQx1GVtmNf7CvFwPLEBnfKjJAjekjsGyIqoq
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect283r1:ALICE_cf_sect283r1_PUB
PrivateKey=BOB_cf_sect283r1
-----BEGIN PRIVATE KEY-----
MEICAQAwEAYHKoZIzj0CAQYFK4EEABEEKzApAgEBBCQDxItnY3cDCrX/jGnVuAKDPaySZCr3E83Q
UdFnP6YIykt7+Pg=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect283r1_PUB
-----BEGIN PUBLIC KEY-----
MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEBJ2C9BCkX0YRfs2ufgUKvreUXFWp2AGK+iHlZB4N3LqO
PKpmAkrAeCMty6mw2mEnOR5HA1d4Ee+z7/NJgJJ80Ra9bFnreOW3
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect283r1:BOB_cf_sect283r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect283r1
PeerKey=BOB_cf_sect283r1_PUB
SharedSecret=0424259cf09727574fb863cab7c27d8fe3835e96433110a45a951f94347fc81939ec4773
# ECDH Bob with Alice peer
Derive=BOB_cf_sect283r1
PeerKey=ALICE_cf_sect283r1_PUB
SharedSecret=0424259cf09727574fb863cab7c27d8fe3835e96433110a45a951f94347fc81939ec4773
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect283r1
PeerKey=BOB_cf_sect283r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=01c2a542654ce85b17456ed75b6bca6b6eb761580913670debc426a3525f236df0e875c8
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect283r1
PeerKey=ALICE_cf_sect283r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=01c2a542654ce85b17456ed75b6bca6b6eb761580913670debc426a3525f236df0e875c8
PublicKey=MALICE_cf_sect283r1_PUB
-----BEGIN PUBLIC KEY-----
MF4wEAYHKoZIzj0CAQYFK4EEABEDSgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAByvMnFeSsevoGYMIn7b4NaL9IgowRCTKF8CCrhdEKu3pubP2
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect283r1
PeerKey=MALICE_cf_sect283r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect283r1
PeerKey=MALICE_cf_sect283r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect409k1 curve tests
PrivateKey=ALICE_cf_sect409k1
-----BEGIN PRIVATE KEY-----
MFECAQAwEAYHKoZIzj0CAQYFK4EEACQEOjA4AgEBBDMOthcLahkXFgM0wjOzm767D1A72sFRGlhb
bVH+EB7z2WpIcPX4OD+M4Y1pf/a7wSaoSAo=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect409k1_PUB
-----BEGIN PUBLIC KEY-----
MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAbiYYpeFgCMsZFMzQaiwMJDrC+mCMT7KmhYtD5EMMgLW
5OvhaqYdpRf49A8LOtVcRT7J5gGcMrXQgmQeS3FenA5owWnB2NIgrTNf5d8AAEtrOupsJ4c3kL6e
aAzayZ1+UCEj8skbC9U=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect409k1:ALICE_cf_sect409k1_PUB
PrivateKey=BOB_cf_sect409k1
-----BEGIN PRIVATE KEY-----
MFECAQAwEAYHKoZIzj0CAQYFK4EEACQEOjA4AgEBBDMO43ldQllTewdZwffH4OEXdzBrLwabKsn4
6/hjgIAaYda/pt4yCEQLMp18QgtfMey5ENI=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect409k1_PUB
-----BEGIN PUBLIC KEY-----
MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAVTQj6hRizVmOx4Z6vroN/zMkmAY+QhkQ0CnFeJ0AydY
Fv+f+/420vMC1Mhqsc9VzPMmIAH6ZrgGKDsd4Ce9JUtYE0rVhGeiG2RaN1U5RlhVK4avkWhFlyQ5
vuu4aApQiWE3yQd9v/I=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect409k1:BOB_cf_sect409k1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect409k1
PeerKey=BOB_cf_sect409k1_PUB
SharedSecret=01fbe13188588c9d1ac3a8a2680ea9a009b28e4b7d7fa4efcb1a22553876fb7973616819fd87c75e5b8ce6e3628595e4ce12edb0
# ECDH Bob with Alice peer
Derive=BOB_cf_sect409k1
PeerKey=ALICE_cf_sect409k1_PUB
SharedSecret=01fbe13188588c9d1ac3a8a2680ea9a009b28e4b7d7fa4efcb1a22553876fb7973616819fd87c75e5b8ce6e3628595e4ce12edb0
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect409k1
PeerKey=BOB_cf_sect409k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=007e9485f7234bb2255bb40e51f4be867cb0ef31f8e489a697b31b51c4d5346daaee51e96ae6f9636e6e3af56095fe28755325ee
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect409k1
PeerKey=ALICE_cf_sect409k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=007e9485f7234bb2255bb40e51f4be867cb0ef31f8e489a697b31b51c4d5346daaee51e96ae6f9636e6e3af56095fe28755325ee
PublicKey=MALICE_cf_sect409k1_PUB
-----BEGIN PUBLIC KEY-----
MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA=
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect409k1
PeerKey=MALICE_cf_sect409k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect409k1
PeerKey=MALICE_cf_sect409k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect409r1 curve tests
PrivateKey=ALICE_cf_sect409r1
-----BEGIN PRIVATE KEY-----
MFICAQAwEAYHKoZIzj0CAQYFK4EEACUEOzA5AgEBBDQAxSC9lST5dtfXQI1Ug9VMMoue3GGni5ON
+gieyXK2KKbd29KAPs4/AOd8kX2wQDsZPO7E
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect409r1_PUB
-----BEGIN PUBLIC KEY-----
MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEASAvXAM15DJerAu1JttpBuMJK1/fEfFohu2iEpt3r7Ui
iQoER6HUsWiw1hhcJyTv7WzpJQHFWrOlJMe/KjmQa/CygSc65YHDzG27oUL+KGdQUGc79ZRSwl/q
fGZqa3D+bDVMwrhmZto=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect409r1:ALICE_cf_sect409r1_PUB
PrivateKey=BOB_cf_sect409r1
-----BEGIN PRIVATE KEY-----
MFICAQAwEAYHKoZIzj0CAQYFK4EEACUEOzA5AgEBBDQARen+1P3JQzBgOv0pUYwsZTPRVLpqqDAU
7mKL2lk9eH7zSGmtNoMvP2m1S2dBnXxFY/bV
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect409r1_PUB
-----BEGIN PUBLIC KEY-----
MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAbDUw066TtdfOpDvrlKosEyqUNEG7rY+AKvDqKw+HOzf
sUTYee6cEf71oqJ1sCKPQiYzlwCu/HLQeWPxISE6Uo+53kkeJml2xpMBwoE25Gq/DSS61dR7SRTZ
+sUmumbIuGzbrjtMRmw=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect409r1:BOB_cf_sect409r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect409r1
PeerKey=BOB_cf_sect409r1_PUB
SharedSecret=00a751259cdb3b445ce71a40a01a2189dfce70226111190505fc6eabe4e5a05bff7af55f2015e1ffcab6aea7ea9a6e74905da2a1
# ECDH Bob with Alice peer
Derive=BOB_cf_sect409r1
PeerKey=ALICE_cf_sect409r1_PUB
SharedSecret=00a751259cdb3b445ce71a40a01a2189dfce70226111190505fc6eabe4e5a05bff7af55f2015e1ffcab6aea7ea9a6e74905da2a1
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect409r1
PeerKey=BOB_cf_sect409r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=0115a31aed416c5089d74a263ec300aff13a5329c6ad27de950ae0b0917b40a3464fccf5691ac9633a51e5177a82b15cfc434aad
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect409r1
PeerKey=ALICE_cf_sect409r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=0115a31aed416c5089d74a263ec300aff13a5329c6ad27de950ae0b0917b40a3464fccf5691ac9633a51e5177a82b15cfc434aad
PublicKey=MALICE_cf_sect409r1_PUB
-----BEGIN PUBLIC KEY-----
MH4wEAYHKoZIzj0CAQYFK4EEACUDagAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAACZNffkdo7i7yL5tKKfU8tdk6su0K185XwbJkn96JWVDPZXZ3My
bFKKSOJ7hyrM8Lwl1e8=
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect409r1
PeerKey=MALICE_cf_sect409r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect409r1
PeerKey=MALICE_cf_sect409r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect571k1 curve tests
PrivateKey=ALICE_cf_sect571k1
-----BEGIN PRIVATE KEY-----
MGYCAQAwEAYHKoZIzj0CAQYFK4EEACYETzBNAgEBBEgB4agvk7Qdf9bVb9aMVdtXL0MuVw6dTleB
zrpPMYty/piI5GWkQEGVp4OJSjF1BGgWmtYSYlV0oI8jJ7hfWTjVGfVWix4ipb8=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect571k1_PUB
-----BEGIN PUBLIC KEY-----
MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDUZq0ZrgYpTXNpOptjExaur0K9FAYHv1j9cvAptwX
dcmQf3VqekMkGZCfNdqNeqCajG3QHRkBHe4FZhWr3FXi8whvvr463lUDf+t46un1kE6FTYfhILGa
sBZm7OdfkarYd9TXBbmnkFA+XkyPlkM1+6daM3/WmnegK+TYghFDXLgwiyF8s0ElllF7z38Gmc4=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect571k1:ALICE_cf_sect571k1_PUB
PrivateKey=BOB_cf_sect571k1
-----BEGIN PRIVATE KEY-----
MGYCAQAwEAYHKoZIzj0CAQYFK4EEACYETzBNAgEBBEgA3pINxGOI7L9M+Mil+bm/udPwI4xu7ubJ
p3aoOepTXW94laf8wjFLcQnRUwH87Vbq9VLQEfCAFvr2vZoBc+5asnNuDhRNNeQ=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect571k1_PUB
-----BEGIN PUBLIC KEY-----
MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQDZRr5GCSq2uzGxmWNB+bED7zye18Rr/KehwXrbn1r
rKtR8fe+dg2V15FieC3qZe/wCpMtyp79VmEabGi6iGLlAN/rUE81URsA/K7GVpmklslV5gmwryR0
3E7jGKPFesun9iNtmpgM18P9y3aJd4Qr4hMlwW2Nyw187l6QB/W2e/i+8vKXFTLHlz5WLAyAcpA=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect571k1:BOB_cf_sect571k1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect571k1
PeerKey=BOB_cf_sect571k1_PUB
SharedSecret=02b79c92cee50dc5b9fdddce36d4fa2e28d7d178cd74e575961f39429496305b38815c840c2e66327435c044ed885ec964068531251a2112717602532e8b6d5411db2fe05c1ac18c
# ECDH Bob with Alice peer
Derive=BOB_cf_sect571k1
PeerKey=ALICE_cf_sect571k1_PUB
SharedSecret=02b79c92cee50dc5b9fdddce36d4fa2e28d7d178cd74e575961f39429496305b38815c840c2e66327435c044ed885ec964068531251a2112717602532e8b6d5411db2fe05c1ac18c
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect571k1
PeerKey=BOB_cf_sect571k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=063aea789492c9727a5a6b7f24e8d3d377c70ee8e86b13664e191a53b1905e90e78b85960b1881db5160c7c5cacca0d686d9e104140d565eeeec17426f93d3a7ba639ecd716b43d2
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect571k1
PeerKey=ALICE_cf_sect571k1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=063aea789492c9727a5a6b7f24e8d3d377c70ee8e86b13664e191a53b1905e90e78b85960b1881db5160c7c5cacca0d686d9e104140d565eeeec17426f93d3a7ba639ecd716b43d2
PublicKey=MALICE_cf_sect571k1_PUB
-----BEGIN PUBLIC KEY-----
MIGnMBAGByqGSM49AgEGBSuBBAAmA4GSAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect571k1
PeerKey=MALICE_cf_sect571k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect571k1
PeerKey=MALICE_cf_sect571k1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=sect571r1 curve tests
PrivateKey=ALICE_cf_sect571r1
-----BEGIN PRIVATE KEY-----
MGYCAQAwEAYHKoZIzj0CAQYFK4EEACcETzBNAgEBBEgAxfL2/gUsmJonvDMR95Azq1ySgXMlKSRk
+PL+WaS92ZyOo45HaC7RpH5sdkf4b948u6y1BXOxGZuORXy6lgbgZ1Zx2UgL3cI=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_sect571r1_PUB
-----BEGIN PUBLIC KEY-----
MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQBK5L9ccIWacU2A1srZ35opPu6kcbEOsBPmvj/rlMS
fFrdMOcagOYfcD0/ouYHPhvkHbr9k87IlQJfnV6ZNRA4PmWSp/FjkNwETm/fqTCUQHti/qqnKH7R
Ed4fYROLFGvz+PX6E20SryOt1vrmoRyC7Z5FVmgMVOQQ1AaBNAHi3+IPtKx41YdXdbqHJxuI5jE=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_sect571r1:ALICE_cf_sect571r1_PUB
PrivateKey=BOB_cf_sect571r1
-----BEGIN PRIVATE KEY-----
MGYCAQAwEAYHKoZIzj0CAQYFK4EEACcETzBNAgEBBEgAzcRvASPpWi0ybpOGlj0Lozz01C2a5oDA
G5alib1EmZKcpVULxJXn75FQlTKpkUEuWUgA4yk5X5DTiScUuh4LDhaF3AFhsEY=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_sect571r1_PUB
-----BEGIN PUBLIC KEY-----
MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQH3dnL22NajtqDWTX6qD14w1BOlpHFBUPTr24VySlh
kiiBlOF95u7hFr/hSb7gm/3f+IVKyE18Sh2kR4KaxWcPWKY5xKTiqiICT7hCistuzNRt8gR+kNOT
c1rETMV6ZruZinwzEWWWjwJf6612oy2HG3CX3B8Rm+a3sS0q6IzowEwqmDv6v9bMTFk8bsCv0Fk=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_sect571r1:BOB_cf_sect571r1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_sect571r1
PeerKey=BOB_cf_sect571r1_PUB
SharedSecret=0031f9879fa75b8c67ba81ee861be634e2b53aa79f834e9a8ca4df7f4461bcb02f083d9fa5b4767f881a710caa6524b58eb626623ba394961d46535204c26d165089e7d4f7be1827
# ECDH Bob with Alice peer
Derive=BOB_cf_sect571r1
PeerKey=ALICE_cf_sect571r1_PUB
SharedSecret=0031f9879fa75b8c67ba81ee861be634e2b53aa79f834e9a8ca4df7f4461bcb02f083d9fa5b4767f881a710caa6524b58eb626623ba394961d46535204c26d165089e7d4f7be1827
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_sect571r1
PeerKey=BOB_cf_sect571r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=012e8c2c1554988fe20c5ae7d11cdcfe15c7c6e8d2b6f46a43a45d724bfc7b415ea7594d5c16f770a95d6e65bbcb1f34619db95e89f4fecbcb0bc6a3f92d52df6a49b0e7773e0ac0
# ECC CDH Bob with Alice peer
Derive=BOB_cf_sect571r1
PeerKey=ALICE_cf_sect571r1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=012e8c2c1554988fe20c5ae7d11cdcfe15c7c6e8d2b6f46a43a45d724bfc7b415ea7594d5c16f770a95d6e65bbcb1f34619db95e89f4fecbcb0bc6a3f92d52df6a49b0e7773e0ac0
PublicKey=MALICE_cf_sect571r1_PUB
-----BEGIN PUBLIC KEY-----
MIGnMBAGByqGSM49AgEGBSuBBAAnA4GSAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHMtVWZAwgtd1zmgWN/9WC
aNQcWRNUKesEHXqhJVkC5jYsSACodKsLYFNrWEYM0gwG8DQONZSn93G+38EM45tkaZsIRDt2HEM=
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_sect571r1
PeerKey=MALICE_cf_sect571r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_sect571r1
PeerKey=MALICE_cf_sect571r1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=wap-wsg-idm-ecid-wtls10 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls10
-----BEGIN PRIVATE KEY-----
MDsCAQAwEAYHKoZIzj0CAQYFZysBBAoEJDAiAgEBBB1zvDMHGgcytka5KvlvQvJzTA4l2ts2NzBp
SJiGyw==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAZkrhWBz/Q4GB8DY4Ia114ew6H7Eg7ri2uxwxd3rAZs5
/ShvunNyndjCt3Qaq8sulBM0nUyERSDakyD+
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls10:ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls10
-----BEGIN PRIVATE KEY-----
MDsCAQAwEAYHKoZIzj0CAQYFZysBBAoEJDAiAgEBBB1SowkHU79PqokOfgllN53rNS8a3h1wFBY0
dKPkQg==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls10_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAGavw4ChHCoWplAumMEBwJgJ2aYtw+utu4vhWnscAPIT
IJ4IiIGj18rCFBap1sgVbpXjhEBLYg6Itwv2
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls10:BOB_cf_wap-wsg-idm-ecid-wtls10_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls10
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls10_PUB
SharedSecret=0194ef5d80fdfe9df366b2273b983c3dbd440faf76964fcfc06c509f289d
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls10
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
SharedSecret=0194ef5d80fdfe9df366b2273b983c3dbd440faf76964fcfc06c509f289d
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls10
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls10_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=01bedc5cdf63fbf18c3e2bc9765e12f7990c0c0c64f0267ae7c37b9f49f0
# ECC CDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls10
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=01bedc5cdf63fbf18c3e2bc9765e12f7990c0c0c64f0267ae7c37b9f49f0
PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFZysBBAoDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls10
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls10
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls10_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=wap-wsg-idm-ecid-wtls11 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls11
-----BEGIN PRIVATE KEY-----
MDwCAQAwEAYHKoZIzj0CAQYFZysBBAsEJTAjAgEBBB4AkzS3zoqHNCLug/nwoYMQW3UigmZ9t56k
5jp+FiY=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEABttgKKYeGZRmcH/5UZR56lOSgbU4TH2AuIhvj88AL6H
zTCX9elzXpck+u22bnmkuvL2A8XKB5+fabMR
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls11:ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls11
-----BEGIN PRIVATE KEY-----
MDwCAQAwEAYHKoZIzj0CAQYFZysBBAsEJTAjAgEBBB4AWU05mbqPxsB749llNON1//l0w8RJJ3z5
h/kzfNM=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls11_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEAL6Xj/KCmXAQAAo847t0bl0wqBrteWRg93OvIJsPAAOE
ehdIgJyruc3KsH0RFlipu5QD8pnGSIXvif19
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls11:BOB_cf_wap-wsg-idm-ecid-wtls11_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls11
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls11_PUB
SharedSecret=01ac8a23ddeeafb4d3bb243fe409f2f9c8b1a3fc11d4690da583f2e21637
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls11
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
SharedSecret=01ac8a23ddeeafb4d3bb243fe409f2f9c8b1a3fc11d4690da583f2e21637
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls11
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls11_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=01b9992992572d3a59d424f8c9cc195576461ed6c1dadf6fb523717fab19
# ECC CDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls11
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=01b9992992572d3a59d424f8c9cc195576461ed6c1dadf6fb523717fab19
PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
-----BEGIN PUBLIC KEY-----
MFIwEAYHKoZIzj0CAQYFZysBBAsDPgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYf4
Vie5eHTnR+4x4G1xyq7qUvISU+X5RtBh2pE4
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls11
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls11
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls11_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=wap-wsg-idm-ecid-wtls12 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls12
-----BEGIN PRIVATE KEY-----
MDoCAQAwEAYHKoZIzj0CAQYFZysBBAwEIzAhAgEBBBxwvll9Eb9mm2Xadq1evIi1zIK+6u0Nv8bP
LI9a
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls12_PUB
-----BEGIN PUBLIC KEY-----
ME4wEAYHKoZIzj0CAQYFZysBBAwDOgAE0t0WqG/pFsiCt6agmebw3FCEWAzf9BpNLuzoCkPEe0Li
bqn5udrckL6s3stwCTVFaZUfY2qS9QE=
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls12:ALICE_cf_wap-wsg-idm-ecid-wtls12_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls12
-----BEGIN PRIVATE KEY-----
MDoCAQAwEAYHKoZIzj0CAQYFZysBBAwEIzAhAgEBBBz+5P6gpqXxbeXvvaD5W9Ft69BTxcn7zc6q
K3Ax
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls12_PUB
-----BEGIN PUBLIC KEY-----
ME4wEAYHKoZIzj0CAQYFZysBBAwDOgAEvyxedqaWkoAOMjaV5W3/tJpheiHAR0zV6BlIeUuGP2mx
+xsOK9/QB7hzipq9cXx1K/dXu58EoSY=
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls12:BOB_cf_wap-wsg-idm-ecid-wtls12_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls12
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls12_PUB
SharedSecret=a3b3f20af8c33a0f5c246b4b9d9dda1cd40c294d1f53365d18a8b54b
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls12
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls12_PUB
SharedSecret=a3b3f20af8c33a0f5c246b4b9d9dda1cd40c294d1f53365d18a8b54b
Title=wap-wsg-idm-ecid-wtls1 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls1
-----BEGIN PRIVATE KEY-----
MCwCAQAwEAYHKoZIzj0CAQYFZysBBAEEFTATAgEBBA5ZNASTt4/g6XPQwRiQ0Q==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEACBNPI48xxsPVQBy07jRAAcWzbIkMo8BQotxpfGJ
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls1:ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls1
-----BEGIN PRIVATE KEY-----
MCwCAQAwEAYHKoZIzj0CAQYFZysBBAEEFTATAgEBBA6+0x9qk0NIKHSRvlTemQ==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls1_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEAEeHMSBTx/EtOu+bjBinALHSkQuJyiP3mg1tu+I2
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls1:BOB_cf_wap-wsg-idm-ecid-wtls1_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls1
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls1_PUB
SharedSecret=0040ba2fadc1da97c973e5e59ade31
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls1
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
SharedSecret=0040ba2fadc1da97c973e5e59ade31
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls1
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=008919696215a89e03d6c4c9265d6b
# ECC CDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls1
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=008919696215a89e03d6c4c9265d6b
PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFZysBBAEDIAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls1
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls1
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls1_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=wap-wsg-idm-ecid-wtls3 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls3
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFZysBBAMEHDAaAgEBBBUDO2cHbqQBUxuJBl6UT9UrasuRVrI=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEBRIzvK9o7eO2NGmtPFV/zo9/1mlvBwjG7+e6hbPG1KdI
01f8oGBuXMQH
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls3:ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls3
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFZysBBAMEHDAaAgEBBBUAhZv9WZ00bDnU9MOaqEegP771nes=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls3_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEAYOspjEbzyZw61jCtUrxARr+w66nBH+73QIvlaRVSG/4
hlBUf5kmG4Yn
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls3:BOB_cf_wap-wsg-idm-ecid-wtls3_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls3
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls3_PUB
SharedSecret=0311924428a839b7dcada662722945e62bf1131f4f
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls3
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
SharedSecret=0311924428a839b7dcada662722945e62bf1131f4f
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls3
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls3_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=047f1aee6a1a1d7c9c1f0e8dce4349429f737aa658
# ECC CDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls3
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=047f1aee6a1a1d7c9c1f0e8dce4349429f737aa658
PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFZysBBAMDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAB
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls3
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls3
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls3_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=wap-wsg-idm-ecid-wtls4 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls4
-----BEGIN PRIVATE KEY-----
MC0CAQAwEAYHKoZIzj0CAQYFZysBBAQEFjAUAgEBBA8ACFOrBbOh5LjNtJQCuEE=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAW3K4Mus5+KAJVGLzEYrAYuCJSEYXFTo17aW0TwN
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls4:ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls4
-----BEGIN PRIVATE KEY-----
MC0CAQAwEAYHKoZIzj0CAQYFZysBBAQEFjAUAgEBBA8Auz4XRc3Rg0bNcbrray8=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls4_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAI0F7ixGqOhnYpsuR80nAdTdSXM+YbcUbLe/U/xG
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls4:BOB_cf_wap-wsg-idm-ecid-wtls4_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls4
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls4_PUB
SharedSecret=0077378ddfdadff704a0b6646949e7
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls4
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
SharedSecret=0077378ddfdadff704a0b6646949e7
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls4
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls4_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=008f3713fe1ff1fa5d5041899817d1
# ECC CDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls4
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=008f3713fe1ff1fa5d5041899817d1
PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
-----BEGIN PUBLIC KEY-----
MDQwEAYHKoZIzj0CAQYFZysBBAQDIAAEAAAAAAAAAAAAAAAAAAAAAd+TqiBXnTd/lyA/OFsR
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls4
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls4
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls4_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=wap-wsg-idm-ecid-wtls5 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls5
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFZysBBAUEHDAaAgEBBBUD9gVh3zbLTA7BuRVVi9T8QKZ1uco=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEAH5xyUrvbuN+tWmRhwqrQfFHPHNUBKtAGvJuvSFVwTKk
uFzn9fPvIDe6
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls5:ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls5
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFZysBBAUEHDAaAgEBBBUAr9ZlmuO7bNfqB42xUivJXyVHKNI=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls5_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEBdXxEk0L2XAVzRNLPcnMxGXXyDfZAoA1Qw2XpOfVWIVR
jdoMGRgUuJmO
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls5:BOB_cf_wap-wsg-idm-ecid-wtls5_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls5
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls5_PUB
SharedSecret=0190c68d80e94fbe9f193ae7d9a156bf0b8d097c23
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls5
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
SharedSecret=0190c68d80e94fbe9f193ae7d9a156bf0b8d097c23
# ECC CDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls5
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls5_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=00aabc9b45c200e41294aa922ab06da6655731e0ea
# ECC CDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls5
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
Ctrl=ecdh_cofactor_mode:1
SharedSecret=00aabc9b45c200e41294aa922ab06da6655731e0ea
PublicKey=MALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
-----BEGIN PUBLIC KEY-----
MEAwEAYHKoZIzj0CAQYFZysBBAUDLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8JxepS05nN/piK
dhDD3dDKXUih
-----END PUBLIC KEY-----
# ECC CDH Bob with Malice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls5
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
# ECC CDH Alice with Malice peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls5
PeerKey=MALICE_cf_wap-wsg-idm-ecid-wtls5_PUB
Ctrl=ecdh_cofactor_mode:1
Result=DERIVE_ERROR
Title=wap-wsg-idm-ecid-wtls6 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls6
-----BEGIN PRIVATE KEY-----
MCwCAQAwEAYHKoZIzj0CAQYFZysBBAYEFTATAgEBBA4ayMbswPbvYMwpwo80jA==
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls6_PUB
-----BEGIN PUBLIC KEY-----
MDIwEAYHKoZIzj0CAQYFZysBBAYDHgAERPw/8Ip/RrXr0gMgLGRQeiQ4Qd6W+Li0ylGKzg==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls6:ALICE_cf_wap-wsg-idm-ecid-wtls6_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls6
-----BEGIN PRIVATE KEY-----
MCwCAQAwEAYHKoZIzj0CAQYFZysBBAYEFTATAgEBBA6kbCpFt3tX2hYBQHMXbg==
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls6_PUB
-----BEGIN PUBLIC KEY-----
MDIwEAYHKoZIzj0CAQYFZysBBAYDHgAEhJXqpYGxE/l1X/LiBeyRbIcyzqPxUP5Tkv3U3w==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls6:BOB_cf_wap-wsg-idm-ecid-wtls6_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls6
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls6_PUB
SharedSecret=b4cae255268f11a1e46fecad04c2
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls6
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls6_PUB
SharedSecret=b4cae255268f11a1e46fecad04c2
Title=wap-wsg-idm-ecid-wtls7 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls7
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFZysBBAcEHDAaAgEBBBUABcyzh4ot9ck/j4/3ehK0aYngYoM=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls7_PUB
-----BEGIN PUBLIC KEY-----
MD4wEAYHKoZIzj0CAQYFZysBBAcDKgAEwQLnZ70n45RLqRtAGNzEa3Rl/9nwyjqYUtw2eeHhnNLT
feGY4CNH0w==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls7:ALICE_cf_wap-wsg-idm-ecid-wtls7_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls7
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFZysBBAcEHDAaAgEBBBUAPyrGRY1SR13hKQswS6yXs8w8PUQ=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls7_PUB
-----BEGIN PUBLIC KEY-----
MD4wEAYHKoZIzj0CAQYFZysBBAcDKgAEZGN44YbN5r3zcNtOHrvbQLt8/lE7BHp4D/9eKLmwFDn1
QneRu3xwPA==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls7:BOB_cf_wap-wsg-idm-ecid-wtls7_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls7
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls7_PUB
SharedSecret=ae9f5bcc6457c0422866bf855921eabc42b7121a
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls7
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls7_PUB
SharedSecret=ae9f5bcc6457c0422866bf855921eabc42b7121a
Title=wap-wsg-idm-ecid-wtls8 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls8
-----BEGIN PRIVATE KEY-----
MC0CAQAwEAYHKoZIzj0CAQYFZysBBAgEFjAUAgEBBA8AnkC18b3pH2O5TIYIqAQ=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls8_PUB
-----BEGIN PUBLIC KEY-----
MDIwEAYHKoZIzj0CAQYFZysBBAgDHgAEJD0h4HEfchwxqhp9eMHh9gczQKHX4MtWVoAxKQ==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls8:ALICE_cf_wap-wsg-idm-ecid-wtls8_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls8
-----BEGIN PRIVATE KEY-----
MC0CAQAwEAYHKoZIzj0CAQYFZysBBAgEFjAUAgEBBA8AXxPMnqbl3rOuIM5nsvc=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls8_PUB
-----BEGIN PUBLIC KEY-----
MDIwEAYHKoZIzj0CAQYFZysBBAgDHgAEZawmRmzr9P+jihImUi6ykOzaSH484JhMKNdrgw==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls8:BOB_cf_wap-wsg-idm-ecid-wtls8_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls8
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls8_PUB
SharedSecret=48baf4f1f5e8a0eb5dae28ef6290
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls8
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls8_PUB
SharedSecret=48baf4f1f5e8a0eb5dae28ef6290
Title=wap-wsg-idm-ecid-wtls9 curve tests
PrivateKey=ALICE_cf_wap-wsg-idm-ecid-wtls9
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFZysBBAkEHDAaAgEBBBUALwvuKs3RLthMAsChbqKjXw6vTYo=
-----END PRIVATE KEY-----
PublicKey=ALICE_cf_wap-wsg-idm-ecid-wtls9_PUB
-----BEGIN PUBLIC KEY-----
MD4wEAYHKoZIzj0CAQYFZysBBAkDKgAET0ppOvd9DU4v+tkKDQ5wRBrN1FwD9+F9t5l3Im+mz3rw
DB/RYdZuUg==
-----END PUBLIC KEY-----
PrivPubKeyPair=ALICE_cf_wap-wsg-idm-ecid-wtls9:ALICE_cf_wap-wsg-idm-ecid-wtls9_PUB
PrivateKey=BOB_cf_wap-wsg-idm-ecid-wtls9
-----BEGIN PRIVATE KEY-----
MDMCAQAwEAYHKoZIzj0CAQYFZysBBAkEHDAaAgEBBBUAgeb/vqEM7X5AAAxyBu3M+C8pWLM=
-----END PRIVATE KEY-----
PublicKey=BOB_cf_wap-wsg-idm-ecid-wtls9_PUB
-----BEGIN PUBLIC KEY-----
MD4wEAYHKoZIzj0CAQYFZysBBAkDKgAEWc37LGt6lt90iF4lhtDYNFdjAqoczebuNgzGff/Uq8ov
a3EVJ9yK1A==
-----END PUBLIC KEY-----
PrivPubKeyPair=BOB_cf_wap-wsg-idm-ecid-wtls9:BOB_cf_wap-wsg-idm-ecid-wtls9_PUB
# ECDH Alice with Bob peer
Derive=ALICE_cf_wap-wsg-idm-ecid-wtls9
PeerKey=BOB_cf_wap-wsg-idm-ecid-wtls9_PUB
SharedSecret=948d3030e95cead39a1bb3d8a01c2be178517ba7
# ECDH Bob with Alice peer
Derive=BOB_cf_wap-wsg-idm-ecid-wtls9
PeerKey=ALICE_cf_wap-wsg-idm-ecid-wtls9_PUB
SharedSecret=948d3030e95cead39a1bb3d8a01c2be178517ba7
# tests: 484
+122 -18
View File
@@ -944,11 +944,12 @@ static int execute_test_session(int maxprot, int use_int_cache,
if (maxprot == TLS1_3_VERSION) { if (maxprot == TLS1_3_VERSION) {
/* /*
* In TLSv1.3 we should have created a new session even though we have * In TLSv1.3 we should have created a new session even though we have
* resumed. * resumed. Since we attempted a resume we should also have removed the
* old ticket from the cache so that we try to only use tickets once.
*/ */
if (use_ext_cache if (use_ext_cache
&& (!TEST_int_eq(new_called, 1) && (!TEST_int_eq(new_called, 1)
|| !TEST_int_eq(remove_called, 0))) || !TEST_int_eq(remove_called, 1)))
goto end; goto end;
} else { } else {
/* /*
@@ -1847,11 +1848,14 @@ static unsigned int psk_server_cb(SSL *ssl, const char *identity,
static int setupearly_data_test(SSL_CTX **cctx, SSL_CTX **sctx, SSL **clientssl, static int setupearly_data_test(SSL_CTX **cctx, SSL_CTX **sctx, SSL **clientssl,
SSL **serverssl, SSL_SESSION **sess, int idx) SSL **serverssl, SSL_SESSION **sess, int idx)
{ {
if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(), if (*sctx == NULL
TLS1_VERSION, TLS_MAX_VERSION, && !TEST_true(create_ssl_ctx_pair(TLS_server_method(),
sctx, cctx, cert, privkey)) TLS_client_method(),
|| !TEST_true(SSL_CTX_set_max_early_data(*sctx, TLS1_VERSION, TLS_MAX_VERSION,
SSL3_RT_MAX_PLAIN_LENGTH))) sctx, cctx, cert, privkey)))
return 0;
if (!TEST_true(SSL_CTX_set_max_early_data(*sctx, SSL3_RT_MAX_PLAIN_LENGTH)))
return 0; return 0;
if (idx == 1) { if (idx == 1) {
@@ -2156,12 +2160,65 @@ static int test_early_data_read_write(int idx)
return testresult; return testresult;
} }
static int test_early_data_replay(int idx) static int allow_ed_cb_called = 0;
static int allow_early_data_cb(SSL *s, void *arg)
{
int *usecb = (int *)arg;
allow_ed_cb_called++;
if (*usecb == 1)
return 0;
return 1;
}
/*
* idx == 0: Standard early_data setup
* idx == 1: early_data setup using read_ahead
* usecb == 0: Don't use a custom early data callback
* usecb == 1: Use a custom early data callback and reject the early data
* usecb == 2: Use a custom early data callback and accept the early data
* confopt == 0: Configure anti-replay directly
* confopt == 1: Configure anti-replay using SSL_CONF
*/
static int test_early_data_replay_int(int idx, int usecb, int confopt)
{ {
SSL_CTX *cctx = NULL, *sctx = NULL; SSL_CTX *cctx = NULL, *sctx = NULL;
SSL *clientssl = NULL, *serverssl = NULL; SSL *clientssl = NULL, *serverssl = NULL;
int testresult = 0; int testresult = 0;
SSL_SESSION *sess = NULL; SSL_SESSION *sess = NULL;
size_t readbytes, written;
unsigned char buf[20];
allow_ed_cb_called = 0;
if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(),
TLS1_VERSION, TLS_MAX_VERSION, &sctx,
&cctx, cert, privkey)))
return 0;
if (usecb > 0) {
if (confopt == 0) {
SSL_CTX_set_options(sctx, SSL_OP_NO_ANTI_REPLAY);
} else {
SSL_CONF_CTX *confctx = SSL_CONF_CTX_new();
if (!TEST_ptr(confctx))
goto end;
SSL_CONF_CTX_set_flags(confctx, SSL_CONF_FLAG_FILE
| SSL_CONF_FLAG_SERVER);
SSL_CONF_CTX_set_ssl_ctx(confctx, sctx);
if (!TEST_int_eq(SSL_CONF_cmd(confctx, "Options", "-AntiReplay"),
2)) {
SSL_CONF_CTX_free(confctx);
goto end;
}
SSL_CONF_CTX_free(confctx);
}
SSL_CTX_set_allow_early_data_cb(sctx, allow_early_data_cb, &usecb);
}
if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl, if (!TEST_true(setupearly_data_test(&cctx, &sctx, &clientssl,
&serverssl, &sess, idx))) &serverssl, &sess, idx)))
@@ -2183,14 +2240,49 @@ static int test_early_data_replay(int idx)
if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl,
&clientssl, NULL, NULL)) &clientssl, NULL, NULL))
|| !TEST_true(SSL_set_session(clientssl, sess)) || !TEST_true(SSL_set_session(clientssl, sess)))
|| !TEST_true(create_ssl_connection(serverssl, clientssl, goto end;
SSL_ERROR_NONE))
/* /* Write and read some early data */
* This time we should not have resumed the session because we if (!TEST_true(SSL_write_early_data(clientssl, MSG1, strlen(MSG1),
* already used it once. &written))
*/ || !TEST_size_t_eq(written, strlen(MSG1)))
|| !TEST_false(SSL_session_reused(clientssl))) goto end;
if (usecb <= 1) {
if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
&readbytes),
SSL_READ_EARLY_DATA_FINISH)
/*
* The ticket was reused, so the we should have rejected the
* early data
*/
|| !TEST_int_eq(SSL_get_early_data_status(serverssl),
SSL_EARLY_DATA_REJECTED))
goto end;
} else {
/* In this case the callback decides to accept the early data */
if (!TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
&readbytes),
SSL_READ_EARLY_DATA_SUCCESS)
|| !TEST_mem_eq(MSG1, strlen(MSG1), buf, readbytes)
/*
* Server will have sent its flight so client can now send
* end of early data and complete its half of the handshake
*/
|| !TEST_int_gt(SSL_connect(clientssl), 0)
|| !TEST_int_eq(SSL_read_early_data(serverssl, buf, sizeof(buf),
&readbytes),
SSL_READ_EARLY_DATA_FINISH)
|| !TEST_int_eq(SSL_get_early_data_status(serverssl),
SSL_EARLY_DATA_ACCEPTED))
goto end;
}
/* Complete the connection */
if (!TEST_true(create_ssl_connection(serverssl, clientssl, SSL_ERROR_NONE))
|| !TEST_int_eq(SSL_session_reused(clientssl), (usecb > 0) ? 1 : 0)
|| !TEST_int_eq(allow_ed_cb_called, usecb > 0 ? 1 : 0))
goto end; goto end;
testresult = 1; testresult = 1;
@@ -2207,6 +2299,18 @@ static int test_early_data_replay(int idx)
return testresult; return testresult;
} }
static int test_early_data_replay(int idx)
{
int ret = 1, usecb, confopt;
for (usecb = 0; usecb < 3; usecb++) {
for (confopt = 0; confopt < 2; confopt++)
ret &= test_early_data_replay_int(idx, usecb, confopt);
}
return ret;
}
/* /*
* Helper function to test that a server attempting to read early data can * Helper function to test that a server attempting to read early data can
* handle a connection from a client where the early data should be skipped. * handle a connection from a client where the early data should be skipped.
@@ -4993,11 +5097,11 @@ static int test_shutdown(int tst)
size_t written, readbytes; size_t written, readbytes;
#ifdef OPENSSL_NO_TLS1_2 #ifdef OPENSSL_NO_TLS1_2
if (tst == 0) if (tst <= 1)
return 1; return 1;
#endif #endif
#ifdef OPENSSL_NO_TLS1_3 #ifdef OPENSSL_NO_TLS1_3
if (tst != 0) if (tst >= 2)
return 1; return 1;
#endif #endif
+2
View File
@@ -490,3 +490,5 @@ SSL_set_num_tickets 490 1_1_1 EXIST::FUNCTION:
SSL_CTX_get_num_tickets 491 1_1_1 EXIST::FUNCTION: SSL_CTX_get_num_tickets 491 1_1_1 EXIST::FUNCTION:
SSL_get_num_tickets 492 1_1_1 EXIST::FUNCTION: SSL_get_num_tickets 492 1_1_1 EXIST::FUNCTION:
SSL_CTX_set_num_tickets 493 1_1_1 EXIST::FUNCTION: SSL_CTX_set_num_tickets 493 1_1_1 EXIST::FUNCTION:
SSL_CTX_set_allow_early_data_cb 494 1_1_1 EXIST::FUNCTION:
SSL_set_allow_early_data_cb 495 1_1_1 EXIST::FUNCTION:
+2
View File
@@ -48,7 +48,9 @@ RAND_DRBG_cleanup_nonce_fn datatype
RAND_DRBG_get_entropy_fn datatype RAND_DRBG_get_entropy_fn datatype
RAND_DRBG_get_nonce_fn datatype RAND_DRBG_get_nonce_fn datatype
RAND_poll_cb datatype RAND_poll_cb datatype
SSL_CTX_allow_early_data_cb_fn datatype
SSL_CTX_keylog_cb_func datatype SSL_CTX_keylog_cb_func datatype
SSL_allow_early_data_cb_fn datatype
SSL_client_hello_cb_fn datatype SSL_client_hello_cb_fn datatype
SSL_psk_client_cb_func datatype SSL_psk_client_cb_func datatype
SSL_psk_find_session_cb_func datatype SSL_psk_find_session_cb_func datatype