session export : Increment DTLS export version with serialization changes

This commit is contained in:
Jacob Barthelmeh
2016-10-11 14:01:38 -06:00
parent 1e028c3566
commit 3c03aa453b
2 changed files with 11 additions and 8 deletions

View File

@ -561,6 +561,7 @@ static int ExportKeyState(WOLFSSL* ssl, byte* exp, word32 len, byte ver)
keys = &(ssl->keys);
if (DTLS_EXPORT_KEY_SZ > len) {
WOLFSSL_MSG("Buffer not large enough for max key struct size");
return BUFFER_E;
}
@ -633,7 +634,8 @@ static int ExportKeyState(WOLFSSL* ssl, byte* exp, word32 len, byte ver)
XMEMCPY(exp + idx, keys->aead_enc_imp_IV, sz); idx += sz;
XMEMCPY(exp + idx, keys->aead_dec_imp_IV, sz); idx += sz;
if (idx > DTLS_EXPORT_KEY_SZ) {
/* DTLS_EXPORT_KEY_SZ is max value. idx size can vary */
if (idx > DTLS_EXPORT_KEY_SZ) {
WOLFSSL_MSG("DTLS_EXPORT_KEY_SZ needs updated and export version");
return DTLS_EXPORT_VER_E;
}
@ -657,6 +659,7 @@ static int ImportCipherSpecState(WOLFSSL* ssl, byte* exp, word32 len, byte ver)
specs= &(ssl->specs);
if (DTLS_EXPORT_SPC_SZ > len) {
WOLFSSL_MSG("Buffer not large enough for max spec struct size");
return BUFFER_E;
}
@ -905,7 +908,7 @@ static int dtls_export_load(WOLFSSL* ssl, byte* exp, word32 len, byte ver)
int idx = 0;
Options* options = &ssl->options;
if (ver != 1) {
if (ver != DTLS_EXPORT_VERSION) {
WOLFSSL_MSG("Export version not supported");
return BAD_FUNC_ARG;
}
@ -1017,7 +1020,7 @@ static int ExportPeerInfo(WOLFSSL* ssl, byte* exp, word32 len, byte ver)
word16 port = 0;
char ip[DTLS_EXPORT_IP];
if (ver != 1) {
if (ver != DTLS_EXPORT_VERSION) {
WOLFSSL_MSG("Export version not supported");
return BAD_FUNC_ARG;
}
@ -1058,7 +1061,7 @@ static int ImportPeerInfo(WOLFSSL* ssl, byte* buf, word32 len, byte ver)
word16 port;
char ip[DTLS_EXPORT_IP];
if (ver != 1) {
if (ver != DTLS_EXPORT_VERSION) {
WOLFSSL_MSG("Export version not supported");
return BAD_FUNC_ARG;
}

View File

@ -954,14 +954,14 @@ enum Misc {
DTLS_HANDSHAKE_FRAG_SZ = 3, /* fragment offset and length are 24 bit */
DTLS_POOL_SZ = 5, /* buffers to hold in the retry pool */
DTLS_EXPORT_PRO = 165,/* wolfSSL protocol for serialized session */
DTLS_EXPORT_VERSION = 1, /* wolfSSL version for serialized session */
DTLS_EXPORT_VERSION = 2, /* wolfSSL version for serialized session */
DTLS_EXPORT_OPT_SZ = 57, /* amount of bytes used from Options */
DTLS_EXPORT_KEY_SZ = 331,/* max amount of bytes used from Keys */
DTLS_EXPORT_MIN_KEY_SZ = 75, /* min amount of bytes used from Keys */
DTLS_EXPORT_KEY_SZ = 337,/* max amount of bytes used from Keys */
DTLS_EXPORT_MIN_KEY_SZ = 89, /* min amount of bytes used from Keys */
DTLS_EXPORT_SPC_SZ = 16, /* amount of bytes used from CipherSpecs */
DTLS_EXPORT_LEN = 2, /* 2 bytes for length and protocol */
DTLS_EXPORT_IP = 46, /* max ip size IPv4 mapped IPv6 */
MAX_EXPORT_BUFFER = 500, /* max size of buffer for exporting */
MAX_EXPORT_BUFFER = 514, /* max size of buffer for exporting */
FINISHED_LABEL_SZ = 15, /* TLS finished label size */
TLS_FINISHED_SZ = 12, /* TLS has a shorter size */
EXT_MASTER_LABEL_SZ = 22, /* TLS extended master secret label sz */