Added support for CCM and CCM_8 cipher suites.
This commit is contained in:
parent
d69276c18d
commit
e37c90ac68
19 changed files with 1278 additions and 546 deletions
|
|
@ -2105,8 +2105,8 @@ typedef union {
|
|||
br_aes_small_ctrcbc_keys c_small;
|
||||
br_aes_ct_ctrcbc_keys c_ct;
|
||||
br_aes_ct64_ctrcbc_keys c_ct64;
|
||||
/* FIXME
|
||||
br_aes_x86ni_ctrcbc_keys c_x86ni;
|
||||
/* FIXME
|
||||
br_aes_pwr8_ctrcbc_keys c_pwr8;
|
||||
*/
|
||||
} br_aes_gen_ctrcbc_keys;
|
||||
|
|
|
|||
|
|
@ -700,6 +700,110 @@ extern const br_sslrec_out_chapol_class br_sslrec_out_chapol_vtable;
|
|||
|
||||
/* ===================================================================== */
|
||||
|
||||
/**
|
||||
* \brief Record decryption engine class, for CCM mode.
|
||||
*
|
||||
* This class type extends the decryption engine class with an
|
||||
* initialisation method that receives the parameters needed
|
||||
* for CCM processing: block cipher implementation, block cipher key,
|
||||
* and 4-byte IV.
|
||||
*/
|
||||
typedef struct br_sslrec_in_ccm_class_ br_sslrec_in_ccm_class;
|
||||
struct br_sslrec_in_ccm_class_ {
|
||||
/**
|
||||
* \brief Superclass, as first vtable field.
|
||||
*/
|
||||
br_sslrec_in_class inner;
|
||||
|
||||
/**
|
||||
* \brief Engine initialisation method.
|
||||
*
|
||||
* This method sets the vtable field in the context.
|
||||
*
|
||||
* \param ctx context to initialise.
|
||||
* \param bc_impl block cipher implementation (CTR+CBC).
|
||||
* \param key block cipher key.
|
||||
* \param key_len block cipher key length (in bytes).
|
||||
* \param iv static IV (4 bytes).
|
||||
* \param tag_len tag length (in bytes)
|
||||
*/
|
||||
void (*init)(const br_sslrec_in_ccm_class **ctx,
|
||||
const br_block_ctrcbc_class *bc_impl,
|
||||
const void *key, size_t key_len,
|
||||
const void *iv, size_t tag_len);
|
||||
};
|
||||
|
||||
/**
|
||||
* \brief Record encryption engine class, for CCM mode.
|
||||
*
|
||||
* This class type extends the encryption engine class with an
|
||||
* initialisation method that receives the parameters needed
|
||||
* for CCM processing: block cipher implementation, block cipher key,
|
||||
* and 4-byte IV.
|
||||
*/
|
||||
typedef struct br_sslrec_out_ccm_class_ br_sslrec_out_ccm_class;
|
||||
struct br_sslrec_out_ccm_class_ {
|
||||
/**
|
||||
* \brief Superclass, as first vtable field.
|
||||
*/
|
||||
br_sslrec_out_class inner;
|
||||
|
||||
/**
|
||||
* \brief Engine initialisation method.
|
||||
*
|
||||
* This method sets the vtable field in the context.
|
||||
*
|
||||
* \param ctx context to initialise.
|
||||
* \param bc_impl block cipher implementation (CTR+CBC).
|
||||
* \param key block cipher key.
|
||||
* \param key_len block cipher key length (in bytes).
|
||||
* \param iv static IV (4 bytes).
|
||||
* \param tag_len tag length (in bytes)
|
||||
*/
|
||||
void (*init)(const br_sslrec_out_ccm_class **ctx,
|
||||
const br_block_ctrcbc_class *bc_impl,
|
||||
const void *key, size_t key_len,
|
||||
const void *iv, size_t tag_len);
|
||||
};
|
||||
|
||||
/**
|
||||
* \brief Context structure for processing records with CCM.
|
||||
*
|
||||
* The same context structure is used for encrypting and decrypting.
|
||||
*
|
||||
* The first field points to the vtable. The other fields are opaque
|
||||
* and shall not be accessed directly.
|
||||
*/
|
||||
typedef struct {
|
||||
/** \brief Pointer to vtable. */
|
||||
union {
|
||||
const void *gen;
|
||||
const br_sslrec_in_ccm_class *in;
|
||||
const br_sslrec_out_ccm_class *out;
|
||||
} vtable;
|
||||
#ifndef BR_DOXYGEN_IGNORE
|
||||
uint64_t seq;
|
||||
union {
|
||||
const br_block_ctrcbc_class *vtable;
|
||||
br_aes_gen_ctrcbc_keys aes;
|
||||
} bc;
|
||||
unsigned char iv[4];
|
||||
size_t tag_len;
|
||||
#endif
|
||||
} br_sslrec_ccm_context;
|
||||
|
||||
/**
|
||||
* \brief Static, constant vtable for record decryption with CCM.
|
||||
*/
|
||||
extern const br_sslrec_in_ccm_class br_sslrec_in_ccm_vtable;
|
||||
|
||||
/**
|
||||
* \brief Static, constant vtable for record encryption with CCM.
|
||||
*/
|
||||
extern const br_sslrec_out_ccm_class br_sslrec_out_ccm_vtable;
|
||||
|
||||
/* ===================================================================== */
|
||||
|
||||
/**
|
||||
* \brief Type for session parameters, to be saved for session resumption.
|
||||
*/
|
||||
|
|
@ -718,9 +822,9 @@ typedef struct {
|
|||
|
||||
#ifndef BR_DOXYGEN_IGNORE
|
||||
/*
|
||||
* Maximum numnber of cipher suites supported by a client or server.
|
||||
* Maximum number of cipher suites supported by a client or server.
|
||||
*/
|
||||
#define BR_MAX_CIPHER_SUITES 40
|
||||
#define BR_MAX_CIPHER_SUITES 48
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
@ -813,6 +917,7 @@ typedef struct {
|
|||
br_sslrec_in_cbc_context cbc;
|
||||
br_sslrec_gcm_context gcm;
|
||||
br_sslrec_chapol_context chapol;
|
||||
br_sslrec_ccm_context ccm;
|
||||
} in;
|
||||
union {
|
||||
const br_sslrec_out_class *vtable;
|
||||
|
|
@ -820,6 +925,7 @@ typedef struct {
|
|||
br_sslrec_out_cbc_context cbc;
|
||||
br_sslrec_gcm_context gcm;
|
||||
br_sslrec_chapol_context chapol;
|
||||
br_sslrec_ccm_context ccm;
|
||||
} out;
|
||||
|
||||
/*
|
||||
|
|
@ -992,6 +1098,7 @@ typedef struct {
|
|||
const br_block_cbcenc_class *iaes_cbcenc;
|
||||
const br_block_cbcdec_class *iaes_cbcdec;
|
||||
const br_block_ctr_class *iaes_ctr;
|
||||
const br_block_ctrcbc_class *iaes_ctrcbc;
|
||||
const br_block_cbcenc_class *ides_cbcenc;
|
||||
const br_block_cbcdec_class *ides_cbcdec;
|
||||
br_ghash ighash;
|
||||
|
|
@ -1003,6 +1110,8 @@ typedef struct {
|
|||
const br_sslrec_out_gcm_class *igcm_out;
|
||||
const br_sslrec_in_chapol_class *ichapol_in;
|
||||
const br_sslrec_out_chapol_class *ichapol_out;
|
||||
const br_sslrec_in_ccm_class *iccm_in;
|
||||
const br_sslrec_out_ccm_class *iccm_out;
|
||||
const br_ec_impl *iec;
|
||||
br_rsa_pkcs1_vrfy irsavrfy;
|
||||
br_ecdsa_vrfy iecdsa;
|
||||
|
|
@ -1451,6 +1560,31 @@ br_ssl_engine_set_poly1305(br_ssl_engine_context *cc,
|
|||
*/
|
||||
void br_ssl_engine_set_default_chapol(br_ssl_engine_context *cc);
|
||||
|
||||
/**
|
||||
* \brief Set the AES/CTR+CBC implementation.
|
||||
*
|
||||
* \param cc SSL engine context.
|
||||
* \param impl AES/CTR+CBC encryption/decryption implementation (or `NULL`).
|
||||
*/
|
||||
static inline void
|
||||
br_ssl_engine_set_aes_ctrcbc(br_ssl_engine_context *cc,
|
||||
const br_block_ctrcbc_class *impl)
|
||||
{
|
||||
cc->iaes_ctrcbc = impl;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Set the "default" implementations for AES/CCM.
|
||||
*
|
||||
* This function configures in the engine the AES/CTR+CBC
|
||||
* implementation that should provide best runtime performance on the local
|
||||
* system, while still being safe (in particular, constant-time). It also
|
||||
* sets the handlers for CCM records.
|
||||
*
|
||||
* \param cc SSL engine context.
|
||||
*/
|
||||
void br_ssl_engine_set_default_aes_ccm(br_ssl_engine_context *cc);
|
||||
|
||||
/**
|
||||
* \brief Set the record encryption and decryption engines for CBC + HMAC.
|
||||
*
|
||||
|
|
@ -1483,6 +1617,22 @@ br_ssl_engine_set_gcm(br_ssl_engine_context *cc,
|
|||
cc->igcm_out = impl_out;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Set the record encryption and decryption engines for CCM.
|
||||
*
|
||||
* \param cc SSL engine context.
|
||||
* \param impl_in record CCM decryption implementation (or `NULL`).
|
||||
* \param impl_out record CCM encryption implementation (or `NULL`).
|
||||
*/
|
||||
static inline void
|
||||
br_ssl_engine_set_ccm(br_ssl_engine_context *cc,
|
||||
const br_sslrec_in_ccm_class *impl_in,
|
||||
const br_sslrec_out_ccm_class *impl_out)
|
||||
{
|
||||
cc->iccm_in = impl_in;
|
||||
cc->iccm_out = impl_out;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Set the record encryption and decryption engines for
|
||||
* ChaCha20+Poly1305.
|
||||
|
|
@ -4090,6 +4240,16 @@ int br_sslio_close(br_sslio_context *cc);
|
|||
#define BR_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 0xC031
|
||||
#define BR_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 0xC032
|
||||
|
||||
/* From RFC 6655 and 7251 */
|
||||
#define BR_TLS_RSA_WITH_AES_128_CCM 0xC09C
|
||||
#define BR_TLS_RSA_WITH_AES_256_CCM 0xC09D
|
||||
#define BR_TLS_RSA_WITH_AES_128_CCM_8 0xC0A0
|
||||
#define BR_TLS_RSA_WITH_AES_256_CCM_8 0xC0A1
|
||||
#define BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM 0xC0AC
|
||||
#define BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM 0xC0AD
|
||||
#define BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 0xC0AE
|
||||
#define BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 0xC0AF
|
||||
|
||||
/* From RFC 7905 */
|
||||
#define BR_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 0xCCA8
|
||||
#define BR_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 0xCCA9
|
||||
|
|
|
|||
|
|
@ -168,6 +168,7 @@ OBJ = \
|
|||
$(OBJDIR)$Pssl_client_full$O \
|
||||
$(OBJDIR)$Pssl_engine$O \
|
||||
$(OBJDIR)$Pssl_engine_default_aescbc$O \
|
||||
$(OBJDIR)$Pssl_engine_default_aesccm$O \
|
||||
$(OBJDIR)$Pssl_engine_default_aesgcm$O \
|
||||
$(OBJDIR)$Pssl_engine_default_chapol$O \
|
||||
$(OBJDIR)$Pssl_engine_default_descbc$O \
|
||||
|
|
@ -181,6 +182,7 @@ OBJ = \
|
|||
$(OBJDIR)$Pssl_keyexport$O \
|
||||
$(OBJDIR)$Pssl_lru$O \
|
||||
$(OBJDIR)$Pssl_rec_cbc$O \
|
||||
$(OBJDIR)$Pssl_rec_ccm$O \
|
||||
$(OBJDIR)$Pssl_rec_chapol$O \
|
||||
$(OBJDIR)$Pssl_rec_gcm$O \
|
||||
$(OBJDIR)$Pssl_scert_single_ec$O \
|
||||
|
|
@ -830,6 +832,9 @@ $(OBJDIR)$Pssl_engine$O: src$Pssl$Pssl_engine.c $(HEADERSPRIV)
|
|||
$(OBJDIR)$Pssl_engine_default_aescbc$O: src$Pssl$Pssl_engine_default_aescbc.c $(HEADERSPRIV)
|
||||
$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$Pssl_engine_default_aescbc$O src$Pssl$Pssl_engine_default_aescbc.c
|
||||
|
||||
$(OBJDIR)$Pssl_engine_default_aesccm$O: src$Pssl$Pssl_engine_default_aesccm.c $(HEADERSPRIV)
|
||||
$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$Pssl_engine_default_aesccm$O src$Pssl$Pssl_engine_default_aesccm.c
|
||||
|
||||
$(OBJDIR)$Pssl_engine_default_aesgcm$O: src$Pssl$Pssl_engine_default_aesgcm.c $(HEADERSPRIV)
|
||||
$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$Pssl_engine_default_aesgcm$O src$Pssl$Pssl_engine_default_aesgcm.c
|
||||
|
||||
|
|
@ -869,6 +874,9 @@ $(OBJDIR)$Pssl_lru$O: src$Pssl$Pssl_lru.c $(HEADERSPRIV)
|
|||
$(OBJDIR)$Pssl_rec_cbc$O: src$Pssl$Pssl_rec_cbc.c $(HEADERSPRIV)
|
||||
$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$Pssl_rec_cbc$O src$Pssl$Pssl_rec_cbc.c
|
||||
|
||||
$(OBJDIR)$Pssl_rec_ccm$O: src$Pssl$Pssl_rec_ccm.c $(HEADERSPRIV)
|
||||
$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$Pssl_rec_ccm$O src$Pssl$Pssl_rec_ccm.c
|
||||
|
||||
$(OBJDIR)$Pssl_rec_chapol$O: src$Pssl$Pssl_rec_chapol.c $(HEADERSPRIV)
|
||||
$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$Pssl_rec_chapol$O src$Pssl$Pssl_rec_chapol.c
|
||||
|
||||
|
|
|
|||
|
|
@ -216,6 +216,7 @@ coresrc=" \
|
|||
src/ssl/ssl_client_full.c \
|
||||
src/ssl/ssl_engine.c \
|
||||
src/ssl/ssl_engine_default_aescbc.c \
|
||||
src/ssl/ssl_engine_default_aesccm.c \
|
||||
src/ssl/ssl_engine_default_aesgcm.c \
|
||||
src/ssl/ssl_engine_default_chapol.c \
|
||||
src/ssl/ssl_engine_default_descbc.c \
|
||||
|
|
@ -229,6 +230,7 @@ coresrc=" \
|
|||
src/ssl/ssl_keyexport.c \
|
||||
src/ssl/ssl_lru.c \
|
||||
src/ssl/ssl_rec_cbc.c \
|
||||
src/ssl/ssl_rec_ccm.c \
|
||||
src/ssl/ssl_rec_chapol.c \
|
||||
src/ssl/ssl_rec_gcm.c \
|
||||
src/ssl/ssl_scert_single_ec.c \
|
||||
|
|
|
|||
28
src/inner.h
28
src/inner.h
|
|
@ -2147,6 +2147,34 @@ void br_ssl_engine_switch_chapol_in(br_ssl_engine_context *cc,
|
|||
void br_ssl_engine_switch_chapol_out(br_ssl_engine_context *cc,
|
||||
int is_client, int prf_id);
|
||||
|
||||
/*
|
||||
* Switch to CCM decryption for incoming records.
|
||||
* cc the engine context
|
||||
* is_client non-zero for a client, zero for a server
|
||||
* prf_id id of hash function for PRF
|
||||
* bc_impl block cipher implementation (CTR+CBC)
|
||||
* cipher_key_len block cipher key length (in bytes)
|
||||
* tag_len tag length (in bytes)
|
||||
*/
|
||||
void br_ssl_engine_switch_ccm_in(br_ssl_engine_context *cc,
|
||||
int is_client, int prf_id,
|
||||
const br_block_ctrcbc_class *bc_impl,
|
||||
size_t cipher_key_len, size_t tag_len);
|
||||
|
||||
/*
|
||||
* Switch to GCM encryption for outgoing records.
|
||||
* cc the engine context
|
||||
* is_client non-zero for a client, zero for a server
|
||||
* prf_id id of hash function for PRF
|
||||
* bc_impl block cipher implementation (CTR+CBC)
|
||||
* cipher_key_len block cipher key length (in bytes)
|
||||
* tag_len tag length (in bytes)
|
||||
*/
|
||||
void br_ssl_engine_switch_ccm_out(br_ssl_engine_context *cc,
|
||||
int is_client, int prf_id,
|
||||
const br_block_ctrcbc_class *bc_impl,
|
||||
size_t cipher_key_len, size_t tag_len);
|
||||
|
||||
/*
|
||||
* Calls to T0-generated code.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -43,7 +43,9 @@ br_ssl_client_init_full(br_ssl_client_context *cc,
|
|||
* client, but much cheaper on the server, and it implies smaller
|
||||
* messages).
|
||||
* -- ChaCha20+Poly1305 is better than AES/GCM (faster, smaller code).
|
||||
* -- GCM is better than CBC.
|
||||
* -- GCM is better than CCM and CBC. CCM is better than CBC.
|
||||
* -- CCM is preferable over CCM_8 (with CCM_8, forgeries may succeed
|
||||
* with probability 2^(-64)).
|
||||
* -- AES-128 is preferred over AES-256 (AES-128 is already
|
||||
* strong enough, and AES-256 is 40% more expensive).
|
||||
*/
|
||||
|
|
@ -54,6 +56,10 @@ br_ssl_client_init_full(br_ssl_client_context *cc,
|
|||
BR_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
|
||||
BR_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
|
||||
BR_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
|
||||
|
|
@ -76,6 +82,10 @@ br_ssl_client_init_full(br_ssl_client_context *cc,
|
|||
BR_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
|
||||
BR_TLS_RSA_WITH_AES_128_GCM_SHA256,
|
||||
BR_TLS_RSA_WITH_AES_256_GCM_SHA384,
|
||||
BR_TLS_RSA_WITH_AES_128_CCM,
|
||||
BR_TLS_RSA_WITH_AES_256_CCM,
|
||||
BR_TLS_RSA_WITH_AES_128_CCM_8,
|
||||
BR_TLS_RSA_WITH_AES_256_CCM_8,
|
||||
BR_TLS_RSA_WITH_AES_128_CBC_SHA256,
|
||||
BR_TLS_RSA_WITH_AES_256_CBC_SHA256,
|
||||
BR_TLS_RSA_WITH_AES_128_CBC_SHA,
|
||||
|
|
@ -162,6 +172,7 @@ br_ssl_client_init_full(br_ssl_client_context *cc,
|
|||
* (fastest among constant-time implementations).
|
||||
*/
|
||||
br_ssl_engine_set_default_aes_cbc(&cc->eng);
|
||||
br_ssl_engine_set_default_aes_ccm(&cc->eng);
|
||||
br_ssl_engine_set_default_aes_gcm(&cc->eng);
|
||||
br_ssl_engine_set_default_des_cbc(&cc->eng);
|
||||
br_ssl_engine_set_default_chapol(&cc->eng);
|
||||
|
|
|
|||
|
|
@ -1522,3 +1522,48 @@ br_ssl_engine_switch_chapol_out(br_ssl_engine_context *cc,
|
|||
cc->ichapol_out->init(&cc->out.chapol.vtable.out,
|
||||
cc->ichacha, cc->ipoly, cipher_key, iv);
|
||||
}
|
||||
|
||||
/* see inner.h */
|
||||
void
|
||||
br_ssl_engine_switch_ccm_in(br_ssl_engine_context *cc,
|
||||
int is_client, int prf_id,
|
||||
const br_block_ctrcbc_class *bc_impl,
|
||||
size_t cipher_key_len, size_t tag_len)
|
||||
{
|
||||
unsigned char kb[72];
|
||||
unsigned char *cipher_key, *iv;
|
||||
|
||||
compute_key_block(cc, prf_id, cipher_key_len + 4, kb);
|
||||
if (is_client) {
|
||||
cipher_key = &kb[cipher_key_len];
|
||||
iv = &kb[(cipher_key_len << 1) + 4];
|
||||
} else {
|
||||
cipher_key = &kb[0];
|
||||
iv = &kb[cipher_key_len << 1];
|
||||
}
|
||||
cc->iccm_in->init(&cc->in.ccm.vtable.in,
|
||||
bc_impl, cipher_key, cipher_key_len, iv, tag_len);
|
||||
cc->incrypt = 1;
|
||||
}
|
||||
|
||||
/* see inner.h */
|
||||
void
|
||||
br_ssl_engine_switch_ccm_out(br_ssl_engine_context *cc,
|
||||
int is_client, int prf_id,
|
||||
const br_block_ctrcbc_class *bc_impl,
|
||||
size_t cipher_key_len, size_t tag_len)
|
||||
{
|
||||
unsigned char kb[72];
|
||||
unsigned char *cipher_key, *iv;
|
||||
|
||||
compute_key_block(cc, prf_id, cipher_key_len + 4, kb);
|
||||
if (is_client) {
|
||||
cipher_key = &kb[0];
|
||||
iv = &kb[cipher_key_len << 1];
|
||||
} else {
|
||||
cipher_key = &kb[cipher_key_len];
|
||||
iv = &kb[(cipher_key_len << 1) + 4];
|
||||
}
|
||||
cc->iccm_out->init(&cc->out.ccm.vtable.out,
|
||||
bc_impl, cipher_key, cipher_key_len, iv, tag_len);
|
||||
}
|
||||
|
|
|
|||
56
src/ssl/ssl_engine_default_aesccm.c
Normal file
56
src/ssl/ssl_engine_default_aesccm.c
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
/*
|
||||
* Copyright (c) 2018 Thomas Pornin <pornin@bolet.org>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "inner.h"
|
||||
|
||||
/* see bearssl_ssl.h */
|
||||
void
|
||||
br_ssl_engine_set_default_aes_ccm(br_ssl_engine_context *cc)
|
||||
{
|
||||
#if BR_AES_X86NI /* TODO: BR_POWER8 */
|
||||
const br_block_ctrcbc_class *ictrcbc;
|
||||
#endif
|
||||
|
||||
br_ssl_engine_set_ccm(cc,
|
||||
&br_sslrec_in_ccm_vtable,
|
||||
&br_sslrec_out_ccm_vtable);
|
||||
#if BR_AES_X86NI
|
||||
ictrcbc = br_aes_x86ni_ctrcbc_get_vtable();
|
||||
if (ictrcbc != NULL) {
|
||||
br_ssl_engine_set_aes_ctrcbc(cc, ictrcbc);
|
||||
} else {
|
||||
#if BR_64
|
||||
br_ssl_engine_set_aes_ctrcbc(cc, &br_aes_ct64_ctrcbc_vtable);
|
||||
#else
|
||||
br_ssl_engine_set_aes_ctrcbc(cc, &br_aes_ct_ctrcbc_vtable);
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
#if BR_64
|
||||
br_ssl_engine_set_aes_ctrcbc(cc, &br_aes_ct64_ctrcbc_vtable);
|
||||
#else
|
||||
br_ssl_engine_set_aes_ctrcbc(cc, &br_aes_ct_ctrcbc_vtable);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
|
@ -408,8 +408,11 @@ static const unsigned char t0_datablock[] = {
|
|||
0x44, 0xC0, 0x28, 0x12, 0x55, 0xC0, 0x29, 0x31, 0x44, 0xC0, 0x2A, 0x32,
|
||||
0x55, 0xC0, 0x2B, 0x23, 0x04, 0xC0, 0x2C, 0x24, 0x05, 0xC0, 0x2D, 0x43,
|
||||
0x04, 0xC0, 0x2E, 0x44, 0x05, 0xC0, 0x2F, 0x13, 0x04, 0xC0, 0x30, 0x14,
|
||||
0x05, 0xC0, 0x31, 0x33, 0x04, 0xC0, 0x32, 0x34, 0x05, 0xCC, 0xA8, 0x15,
|
||||
0x04, 0xCC, 0xA9, 0x25, 0x04, 0x00, 0x00
|
||||
0x05, 0xC0, 0x31, 0x33, 0x04, 0xC0, 0x32, 0x34, 0x05, 0xC0, 0x9C, 0x06,
|
||||
0x04, 0xC0, 0x9D, 0x07, 0x04, 0xC0, 0xA0, 0x08, 0x04, 0xC0, 0xA1, 0x09,
|
||||
0x04, 0xC0, 0xAC, 0x26, 0x04, 0xC0, 0xAD, 0x27, 0x04, 0xC0, 0xAE, 0x28,
|
||||
0x04, 0xC0, 0xAF, 0x29, 0x04, 0xCC, 0xA8, 0x15, 0x04, 0xCC, 0xA9, 0x25,
|
||||
0x04, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const unsigned char t0_codeblock[] = {
|
||||
|
|
@ -481,28 +484,28 @@ static const unsigned char t0_codeblock[] = {
|
|||
T0_INT2(offsetof(br_ssl_engine_context, version_max)), 0x00, 0x00,
|
||||
0x01, T0_INT2(offsetof(br_ssl_engine_context, version_min)), 0x00,
|
||||
0x00, 0x01, T0_INT2(offsetof(br_ssl_engine_context, version_out)),
|
||||
0x00, 0x00, 0x09, 0x26, 0x56, 0x06, 0x02, 0x66, 0x28, 0x00, 0x00, 0x06,
|
||||
0x08, 0x2C, 0x0E, 0x05, 0x02, 0x6F, 0x28, 0x04, 0x01, 0x3C, 0x00, 0x00,
|
||||
0x01, 0x01, 0x00, 0x01, 0x03, 0x00, 0x97, 0x26, 0x5C, 0x44, 0x9B, 0x26,
|
||||
0x05, 0x04, 0x5E, 0x01, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x06, 0x02, 0x9B,
|
||||
0x00, 0x5C, 0x04, 0x6B, 0x00, 0x06, 0x02, 0x66, 0x28, 0x00, 0x00, 0x26,
|
||||
0x87, 0x44, 0x05, 0x03, 0x01, 0x0C, 0x08, 0x44, 0x77, 0x2C, 0xA9, 0x1C,
|
||||
0x82, 0x01, 0x0C, 0x31, 0x00, 0x00, 0x26, 0x1F, 0x01, 0x08, 0x0B, 0x44,
|
||||
0x5A, 0x1F, 0x08, 0x00, 0x01, 0x03, 0x00, 0x75, 0x2E, 0x02, 0x00, 0x36,
|
||||
0x17, 0x01, 0x01, 0x0B, 0x75, 0x3E, 0x29, 0x1A, 0x36, 0x06, 0x07, 0x02,
|
||||
0x00, 0xCD, 0x03, 0x00, 0x04, 0x75, 0x01, 0x00, 0xC3, 0x02, 0x00, 0x26,
|
||||
0x1A, 0x17, 0x06, 0x02, 0x6D, 0x28, 0xCD, 0x04, 0x76, 0x01, 0x01, 0x00,
|
||||
0x75, 0x3E, 0x01, 0x16, 0x85, 0x3E, 0x01, 0x00, 0x88, 0x3C, 0x34, 0xD3,
|
||||
0x29, 0xB2, 0x06, 0x09, 0x01, 0x7F, 0xAD, 0x01, 0x7F, 0xD0, 0x04, 0x80,
|
||||
0x53, 0xAF, 0x77, 0x2C, 0x9F, 0x01, T0_INT1(BR_KEYTYPE_SIGN), 0x17,
|
||||
0x06, 0x01, 0xB3, 0xB6, 0x26, 0x01, 0x0D, 0x0E, 0x06, 0x07, 0x25, 0xB5,
|
||||
0xB6, 0x01, 0x7F, 0x04, 0x02, 0x01, 0x00, 0x03, 0x00, 0x01, 0x0E, 0x0E,
|
||||
0x05, 0x02, 0x70, 0x28, 0x06, 0x02, 0x65, 0x28, 0x33, 0x06, 0x02, 0x70,
|
||||
0x28, 0x02, 0x00, 0x06, 0x1C, 0xD1, 0x7E, 0x2E, 0x01, 0x81, 0x7F, 0x0E,
|
||||
0x06, 0x0D, 0x25, 0x01, 0x10, 0xDC, 0x01, 0x00, 0xDB, 0x77, 0x2C, 0xA9,
|
||||
0x24, 0x04, 0x04, 0xD4, 0x06, 0x01, 0xD2, 0x04, 0x01, 0xD4, 0x01, 0x7F,
|
||||
0xD0, 0x01, 0x7F, 0xAD, 0x01, 0x01, 0x75, 0x3E, 0x01, 0x17, 0x85, 0x3E,
|
||||
0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x98, 0x01, 0x0C, 0x11, 0x01, 0x00,
|
||||
0x00, 0x00, 0x09, 0x26, 0x58, 0x06, 0x02, 0x68, 0x28, 0x00, 0x00, 0x06,
|
||||
0x08, 0x2C, 0x0E, 0x05, 0x02, 0x71, 0x28, 0x04, 0x01, 0x3C, 0x00, 0x00,
|
||||
0x01, 0x01, 0x00, 0x01, 0x03, 0x00, 0x99, 0x26, 0x5E, 0x44, 0x9D, 0x26,
|
||||
0x05, 0x04, 0x60, 0x01, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x06, 0x02, 0x9D,
|
||||
0x00, 0x5E, 0x04, 0x6B, 0x00, 0x06, 0x02, 0x68, 0x28, 0x00, 0x00, 0x26,
|
||||
0x89, 0x44, 0x05, 0x03, 0x01, 0x0C, 0x08, 0x44, 0x79, 0x2C, 0xAB, 0x1C,
|
||||
0x84, 0x01, 0x0C, 0x31, 0x00, 0x00, 0x26, 0x1F, 0x01, 0x08, 0x0B, 0x44,
|
||||
0x5C, 0x1F, 0x08, 0x00, 0x01, 0x03, 0x00, 0x77, 0x2E, 0x02, 0x00, 0x36,
|
||||
0x17, 0x01, 0x01, 0x0B, 0x77, 0x3E, 0x29, 0x1A, 0x36, 0x06, 0x07, 0x02,
|
||||
0x00, 0xCF, 0x03, 0x00, 0x04, 0x75, 0x01, 0x00, 0xC5, 0x02, 0x00, 0x26,
|
||||
0x1A, 0x17, 0x06, 0x02, 0x6F, 0x28, 0xCF, 0x04, 0x76, 0x01, 0x01, 0x00,
|
||||
0x77, 0x3E, 0x01, 0x16, 0x87, 0x3E, 0x01, 0x00, 0x8A, 0x3C, 0x34, 0xD5,
|
||||
0x29, 0xB4, 0x06, 0x09, 0x01, 0x7F, 0xAF, 0x01, 0x7F, 0xD2, 0x04, 0x80,
|
||||
0x53, 0xB1, 0x79, 0x2C, 0xA1, 0x01, T0_INT1(BR_KEYTYPE_SIGN), 0x17,
|
||||
0x06, 0x01, 0xB5, 0xB8, 0x26, 0x01, 0x0D, 0x0E, 0x06, 0x07, 0x25, 0xB7,
|
||||
0xB8, 0x01, 0x7F, 0x04, 0x02, 0x01, 0x00, 0x03, 0x00, 0x01, 0x0E, 0x0E,
|
||||
0x05, 0x02, 0x72, 0x28, 0x06, 0x02, 0x67, 0x28, 0x33, 0x06, 0x02, 0x72,
|
||||
0x28, 0x02, 0x00, 0x06, 0x1C, 0xD3, 0x80, 0x2E, 0x01, 0x81, 0x7F, 0x0E,
|
||||
0x06, 0x0D, 0x25, 0x01, 0x10, 0xDE, 0x01, 0x00, 0xDD, 0x79, 0x2C, 0xAB,
|
||||
0x24, 0x04, 0x04, 0xD6, 0x06, 0x01, 0xD4, 0x04, 0x01, 0xD6, 0x01, 0x7F,
|
||||
0xD2, 0x01, 0x7F, 0xAF, 0x01, 0x01, 0x77, 0x3E, 0x01, 0x17, 0x87, 0x3E,
|
||||
0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x9A, 0x01, 0x0C, 0x11, 0x01, 0x00,
|
||||
0x38, 0x0E, 0x06, 0x05, 0x25, 0x01,
|
||||
T0_INT1(BR_KEYTYPE_RSA | BR_KEYTYPE_KEYX), 0x04, 0x30, 0x01, 0x01,
|
||||
0x38, 0x0E, 0x06, 0x05, 0x25, 0x01,
|
||||
|
|
@ -513,222 +516,226 @@ static const unsigned char t0_codeblock[] = {
|
|||
T0_INT1(BR_KEYTYPE_EC | BR_KEYTYPE_KEYX), 0x04, 0x0F, 0x01, 0x04,
|
||||
0x38, 0x0E, 0x06, 0x05, 0x25, 0x01,
|
||||
T0_INT1(BR_KEYTYPE_EC | BR_KEYTYPE_KEYX), 0x04, 0x04, 0x01, 0x00,
|
||||
0x44, 0x25, 0x00, 0x00, 0x80, 0x2E, 0x01, 0x0E, 0x0E, 0x06, 0x04, 0x01,
|
||||
0x44, 0x25, 0x00, 0x00, 0x82, 0x2E, 0x01, 0x0E, 0x0E, 0x06, 0x04, 0x01,
|
||||
0x00, 0x04, 0x02, 0x01, 0x05, 0x00, 0x00, 0x40, 0x06, 0x04, 0x01, 0x06,
|
||||
0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x86, 0x2E, 0x26, 0x06, 0x08, 0x01,
|
||||
0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x88, 0x2E, 0x26, 0x06, 0x08, 0x01,
|
||||
0x01, 0x09, 0x01, 0x11, 0x07, 0x04, 0x03, 0x25, 0x01, 0x05, 0x00, 0x01,
|
||||
0x41, 0x03, 0x00, 0x25, 0x01, 0x00, 0x43, 0x06, 0x03, 0x02, 0x00, 0x08,
|
||||
0x42, 0x06, 0x03, 0x02, 0x00, 0x08, 0x26, 0x06, 0x06, 0x01, 0x01, 0x0B,
|
||||
0x01, 0x06, 0x08, 0x00, 0x00, 0x89, 0x3F, 0x26, 0x06, 0x03, 0x01, 0x09,
|
||||
0x01, 0x06, 0x08, 0x00, 0x00, 0x8B, 0x3F, 0x26, 0x06, 0x03, 0x01, 0x09,
|
||||
0x08, 0x00, 0x01, 0x40, 0x26, 0x06, 0x1E, 0x01, 0x00, 0x03, 0x00, 0x26,
|
||||
0x06, 0x0E, 0x26, 0x01, 0x01, 0x17, 0x02, 0x00, 0x08, 0x03, 0x00, 0x01,
|
||||
0x01, 0x11, 0x04, 0x6F, 0x25, 0x02, 0x00, 0x01, 0x01, 0x0B, 0x01, 0x06,
|
||||
0x08, 0x00, 0x00, 0x7D, 0x2D, 0x44, 0x11, 0x01, 0x01, 0x17, 0x35, 0x00,
|
||||
0x00, 0x9D, 0xCC, 0x26, 0x01, 0x07, 0x17, 0x01, 0x00, 0x38, 0x0E, 0x06,
|
||||
0x09, 0x25, 0x01, 0x10, 0x17, 0x06, 0x01, 0x9D, 0x04, 0x35, 0x01, 0x01,
|
||||
0x38, 0x0E, 0x06, 0x2C, 0x25, 0x25, 0x01, 0x00, 0x75, 0x3E, 0xB1, 0x86,
|
||||
0x2E, 0x01, 0x01, 0x0E, 0x01, 0x01, 0xA6, 0x37, 0x06, 0x17, 0x29, 0x1A,
|
||||
0x36, 0x06, 0x04, 0xCC, 0x25, 0x04, 0x78, 0x01, 0x80, 0x64, 0xC3, 0x01,
|
||||
0x01, 0x75, 0x3E, 0x01, 0x17, 0x85, 0x3E, 0x04, 0x01, 0x9D, 0x04, 0x03,
|
||||
0x70, 0x28, 0x25, 0x04, 0xFF, 0x34, 0x01, 0x26, 0x03, 0x00, 0x09, 0x26,
|
||||
0x56, 0x06, 0x02, 0x66, 0x28, 0x02, 0x00, 0x00, 0x00, 0x98, 0x01, 0x0F,
|
||||
0x17, 0x00, 0x00, 0x74, 0x2E, 0x01, 0x00, 0x38, 0x0E, 0x06, 0x10, 0x25,
|
||||
0x26, 0x01, 0x01, 0x0D, 0x06, 0x03, 0x25, 0x01, 0x02, 0x74, 0x3E, 0x01,
|
||||
0x08, 0x00, 0x00, 0x7F, 0x2D, 0x44, 0x11, 0x01, 0x01, 0x17, 0x35, 0x00,
|
||||
0x00, 0x9F, 0xCE, 0x26, 0x01, 0x07, 0x17, 0x01, 0x00, 0x38, 0x0E, 0x06,
|
||||
0x09, 0x25, 0x01, 0x10, 0x17, 0x06, 0x01, 0x9F, 0x04, 0x35, 0x01, 0x01,
|
||||
0x38, 0x0E, 0x06, 0x2C, 0x25, 0x25, 0x01, 0x00, 0x77, 0x3E, 0xB3, 0x88,
|
||||
0x2E, 0x01, 0x01, 0x0E, 0x01, 0x01, 0xA8, 0x37, 0x06, 0x17, 0x29, 0x1A,
|
||||
0x36, 0x06, 0x04, 0xCE, 0x25, 0x04, 0x78, 0x01, 0x80, 0x64, 0xC5, 0x01,
|
||||
0x01, 0x77, 0x3E, 0x01, 0x17, 0x87, 0x3E, 0x04, 0x01, 0x9F, 0x04, 0x03,
|
||||
0x72, 0x28, 0x25, 0x04, 0xFF, 0x34, 0x01, 0x26, 0x03, 0x00, 0x09, 0x26,
|
||||
0x58, 0x06, 0x02, 0x68, 0x28, 0x02, 0x00, 0x00, 0x00, 0x9A, 0x01, 0x0F,
|
||||
0x17, 0x00, 0x00, 0x76, 0x2E, 0x01, 0x00, 0x38, 0x0E, 0x06, 0x10, 0x25,
|
||||
0x26, 0x01, 0x01, 0x0D, 0x06, 0x03, 0x25, 0x01, 0x02, 0x76, 0x3E, 0x01,
|
||||
0x00, 0x04, 0x21, 0x01, 0x01, 0x38, 0x0E, 0x06, 0x14, 0x25, 0x01, 0x00,
|
||||
0x74, 0x3E, 0x26, 0x01, 0x80, 0x64, 0x0E, 0x06, 0x05, 0x01, 0x82, 0x00,
|
||||
0x08, 0x28, 0x58, 0x04, 0x07, 0x25, 0x01, 0x82, 0x00, 0x08, 0x28, 0x25,
|
||||
0x00, 0x00, 0x01, 0x00, 0x2F, 0x06, 0x05, 0x3A, 0xAA, 0x37, 0x04, 0x78,
|
||||
0x26, 0x06, 0x04, 0x01, 0x01, 0x8D, 0x3E, 0x00, 0x01, 0xBD, 0xA8, 0xBD,
|
||||
0xA8, 0xBF, 0x82, 0x44, 0x26, 0x03, 0x00, 0xB4, 0x99, 0x99, 0x02, 0x00,
|
||||
0x4B, 0x26, 0x56, 0x06, 0x0A, 0x01, 0x03, 0xA6, 0x06, 0x02, 0x70, 0x28,
|
||||
0x25, 0x04, 0x03, 0x5A, 0x88, 0x3C, 0x00, 0x00, 0x2F, 0x06, 0x0B, 0x84,
|
||||
0x2E, 0x01, 0x14, 0x0D, 0x06, 0x02, 0x70, 0x28, 0x04, 0x11, 0xCC, 0x01,
|
||||
0x07, 0x17, 0x26, 0x01, 0x02, 0x0D, 0x06, 0x06, 0x06, 0x02, 0x70, 0x28,
|
||||
0x04, 0x70, 0x25, 0xC0, 0x01, 0x01, 0x0D, 0x33, 0x37, 0x06, 0x02, 0x5F,
|
||||
0x28, 0x26, 0x01, 0x01, 0xC6, 0x36, 0xB0, 0x00, 0x01, 0xB6, 0x01, 0x0B,
|
||||
0x0E, 0x05, 0x02, 0x70, 0x28, 0x26, 0x01, 0x03, 0x0E, 0x06, 0x08, 0xBE,
|
||||
0x06, 0x02, 0x66, 0x28, 0x44, 0x25, 0x00, 0x44, 0x55, 0xBE, 0xA8, 0x26,
|
||||
0x06, 0x23, 0xBE, 0xA8, 0x26, 0x54, 0x26, 0x06, 0x18, 0x26, 0x01, 0x82,
|
||||
0x76, 0x3E, 0x26, 0x01, 0x80, 0x64, 0x0E, 0x06, 0x05, 0x01, 0x82, 0x00,
|
||||
0x08, 0x28, 0x5A, 0x04, 0x07, 0x25, 0x01, 0x82, 0x00, 0x08, 0x28, 0x25,
|
||||
0x00, 0x00, 0x01, 0x00, 0x2F, 0x06, 0x05, 0x3A, 0xAC, 0x37, 0x04, 0x78,
|
||||
0x26, 0x06, 0x04, 0x01, 0x01, 0x8F, 0x3E, 0x00, 0x01, 0xBF, 0xAA, 0xBF,
|
||||
0xAA, 0xC1, 0x84, 0x44, 0x26, 0x03, 0x00, 0xB6, 0x9B, 0x9B, 0x02, 0x00,
|
||||
0x4D, 0x26, 0x58, 0x06, 0x0A, 0x01, 0x03, 0xA8, 0x06, 0x02, 0x72, 0x28,
|
||||
0x25, 0x04, 0x03, 0x5C, 0x8A, 0x3C, 0x00, 0x00, 0x2F, 0x06, 0x0B, 0x86,
|
||||
0x2E, 0x01, 0x14, 0x0D, 0x06, 0x02, 0x72, 0x28, 0x04, 0x11, 0xCE, 0x01,
|
||||
0x07, 0x17, 0x26, 0x01, 0x02, 0x0D, 0x06, 0x06, 0x06, 0x02, 0x72, 0x28,
|
||||
0x04, 0x70, 0x25, 0xC2, 0x01, 0x01, 0x0D, 0x33, 0x37, 0x06, 0x02, 0x61,
|
||||
0x28, 0x26, 0x01, 0x01, 0xC8, 0x36, 0xB2, 0x00, 0x01, 0xB8, 0x01, 0x0B,
|
||||
0x0E, 0x05, 0x02, 0x72, 0x28, 0x26, 0x01, 0x03, 0x0E, 0x06, 0x08, 0xC0,
|
||||
0x06, 0x02, 0x68, 0x28, 0x44, 0x25, 0x00, 0x44, 0x57, 0xC0, 0xAA, 0x26,
|
||||
0x06, 0x23, 0xC0, 0xAA, 0x26, 0x56, 0x26, 0x06, 0x18, 0x26, 0x01, 0x82,
|
||||
0x00, 0x0F, 0x06, 0x05, 0x01, 0x82, 0x00, 0x04, 0x01, 0x26, 0x03, 0x00,
|
||||
0x82, 0x02, 0x00, 0xB4, 0x02, 0x00, 0x51, 0x04, 0x65, 0x99, 0x52, 0x04,
|
||||
0x5A, 0x99, 0x99, 0x53, 0x26, 0x06, 0x02, 0x35, 0x00, 0x25, 0x2B, 0x00,
|
||||
0x00, 0x77, 0x2C, 0x9F, 0x01, 0x7F, 0xAE, 0x26, 0x56, 0x06, 0x02, 0x35,
|
||||
0x28, 0x26, 0x05, 0x02, 0x70, 0x28, 0x38, 0x17, 0x0D, 0x06, 0x02, 0x72,
|
||||
0x28, 0x3B, 0x00, 0x00, 0x9A, 0xB6, 0x01, 0x14, 0x0D, 0x06, 0x02, 0x70,
|
||||
0x28, 0x82, 0x01, 0x0C, 0x08, 0x01, 0x0C, 0xB4, 0x99, 0x82, 0x26, 0x01,
|
||||
0x0C, 0x08, 0x01, 0x0C, 0x30, 0x05, 0x02, 0x62, 0x28, 0x00, 0x00, 0xB7,
|
||||
0x06, 0x02, 0x70, 0x28, 0x06, 0x02, 0x64, 0x28, 0x00, 0x0A, 0xB6, 0x01,
|
||||
0x02, 0x0E, 0x05, 0x02, 0x70, 0x28, 0xBD, 0x03, 0x00, 0x02, 0x00, 0x93,
|
||||
0x2C, 0x0A, 0x02, 0x00, 0x92, 0x2C, 0x0F, 0x37, 0x06, 0x02, 0x71, 0x28,
|
||||
0x02, 0x00, 0x91, 0x2C, 0x0D, 0x06, 0x02, 0x69, 0x28, 0x02, 0x00, 0x94,
|
||||
0x3C, 0x8A, 0x01, 0x20, 0xB4, 0x01, 0x00, 0x03, 0x01, 0xBF, 0x03, 0x02,
|
||||
0x02, 0x02, 0x01, 0x20, 0x0F, 0x06, 0x02, 0x6E, 0x28, 0x82, 0x02, 0x02,
|
||||
0xB4, 0x02, 0x02, 0x8C, 0x2E, 0x0E, 0x02, 0x02, 0x01, 0x00, 0x0F, 0x17,
|
||||
0x06, 0x0B, 0x8B, 0x82, 0x02, 0x02, 0x30, 0x06, 0x04, 0x01, 0x7F, 0x03,
|
||||
0x01, 0x8B, 0x82, 0x02, 0x02, 0x31, 0x02, 0x02, 0x8C, 0x3E, 0x02, 0x00,
|
||||
0x90, 0x02, 0x01, 0x96, 0xBD, 0x26, 0xC1, 0x56, 0x06, 0x02, 0x60, 0x28,
|
||||
0x26, 0xCB, 0x02, 0x00, 0x01, 0x86, 0x03, 0x0A, 0x17, 0x06, 0x02, 0x60,
|
||||
0x28, 0x77, 0x02, 0x01, 0x96, 0xBF, 0x06, 0x02, 0x61, 0x28, 0x26, 0x06,
|
||||
0x81, 0x47, 0xBD, 0xA8, 0xA4, 0x03, 0x03, 0xA2, 0x03, 0x04, 0xA0, 0x03,
|
||||
0x05, 0xA3, 0x03, 0x06, 0xA5, 0x03, 0x07, 0xA1, 0x03, 0x08, 0x27, 0x03,
|
||||
0x09, 0x26, 0x06, 0x81, 0x18, 0xBD, 0x01, 0x00, 0x38, 0x0E, 0x06, 0x0F,
|
||||
0x25, 0x02, 0x03, 0x05, 0x02, 0x6A, 0x28, 0x01, 0x00, 0x03, 0x03, 0xBC,
|
||||
0x84, 0x02, 0x00, 0xB6, 0x02, 0x00, 0x53, 0x04, 0x65, 0x9B, 0x54, 0x04,
|
||||
0x5A, 0x9B, 0x9B, 0x55, 0x26, 0x06, 0x02, 0x35, 0x00, 0x25, 0x2B, 0x00,
|
||||
0x00, 0x79, 0x2C, 0xA1, 0x01, 0x7F, 0xB0, 0x26, 0x58, 0x06, 0x02, 0x35,
|
||||
0x28, 0x26, 0x05, 0x02, 0x72, 0x28, 0x38, 0x17, 0x0D, 0x06, 0x02, 0x74,
|
||||
0x28, 0x3B, 0x00, 0x00, 0x9C, 0xB8, 0x01, 0x14, 0x0D, 0x06, 0x02, 0x72,
|
||||
0x28, 0x84, 0x01, 0x0C, 0x08, 0x01, 0x0C, 0xB6, 0x9B, 0x84, 0x26, 0x01,
|
||||
0x0C, 0x08, 0x01, 0x0C, 0x30, 0x05, 0x02, 0x64, 0x28, 0x00, 0x00, 0xB9,
|
||||
0x06, 0x02, 0x72, 0x28, 0x06, 0x02, 0x66, 0x28, 0x00, 0x0A, 0xB8, 0x01,
|
||||
0x02, 0x0E, 0x05, 0x02, 0x72, 0x28, 0xBF, 0x03, 0x00, 0x02, 0x00, 0x95,
|
||||
0x2C, 0x0A, 0x02, 0x00, 0x94, 0x2C, 0x0F, 0x37, 0x06, 0x02, 0x73, 0x28,
|
||||
0x02, 0x00, 0x93, 0x2C, 0x0D, 0x06, 0x02, 0x6B, 0x28, 0x02, 0x00, 0x96,
|
||||
0x3C, 0x8C, 0x01, 0x20, 0xB6, 0x01, 0x00, 0x03, 0x01, 0xC1, 0x03, 0x02,
|
||||
0x02, 0x02, 0x01, 0x20, 0x0F, 0x06, 0x02, 0x70, 0x28, 0x84, 0x02, 0x02,
|
||||
0xB6, 0x02, 0x02, 0x8E, 0x2E, 0x0E, 0x02, 0x02, 0x01, 0x00, 0x0F, 0x17,
|
||||
0x06, 0x0B, 0x8D, 0x84, 0x02, 0x02, 0x30, 0x06, 0x04, 0x01, 0x7F, 0x03,
|
||||
0x01, 0x8D, 0x84, 0x02, 0x02, 0x31, 0x02, 0x02, 0x8E, 0x3E, 0x02, 0x00,
|
||||
0x92, 0x02, 0x01, 0x98, 0xBF, 0x26, 0xC3, 0x58, 0x06, 0x02, 0x62, 0x28,
|
||||
0x26, 0xCD, 0x02, 0x00, 0x01, 0x86, 0x03, 0x0A, 0x17, 0x06, 0x02, 0x62,
|
||||
0x28, 0x79, 0x02, 0x01, 0x98, 0xC1, 0x06, 0x02, 0x63, 0x28, 0x26, 0x06,
|
||||
0x81, 0x47, 0xBF, 0xAA, 0xA6, 0x03, 0x03, 0xA4, 0x03, 0x04, 0xA2, 0x03,
|
||||
0x05, 0xA5, 0x03, 0x06, 0xA7, 0x03, 0x07, 0xA3, 0x03, 0x08, 0x27, 0x03,
|
||||
0x09, 0x26, 0x06, 0x81, 0x18, 0xBF, 0x01, 0x00, 0x38, 0x0E, 0x06, 0x0F,
|
||||
0x25, 0x02, 0x03, 0x05, 0x02, 0x6C, 0x28, 0x01, 0x00, 0x03, 0x03, 0xBE,
|
||||
0x04, 0x80, 0x7F, 0x01, 0x01, 0x38, 0x0E, 0x06, 0x0F, 0x25, 0x02, 0x05,
|
||||
0x05, 0x02, 0x6A, 0x28, 0x01, 0x00, 0x03, 0x05, 0xBA, 0x04, 0x80, 0x6A,
|
||||
0x05, 0x02, 0x6C, 0x28, 0x01, 0x00, 0x03, 0x05, 0xBC, 0x04, 0x80, 0x6A,
|
||||
0x01, 0x83, 0xFE, 0x01, 0x38, 0x0E, 0x06, 0x0F, 0x25, 0x02, 0x04, 0x05,
|
||||
0x02, 0x6A, 0x28, 0x01, 0x00, 0x03, 0x04, 0xBB, 0x04, 0x80, 0x53, 0x01,
|
||||
0x0D, 0x38, 0x0E, 0x06, 0x0E, 0x25, 0x02, 0x06, 0x05, 0x02, 0x6A, 0x28,
|
||||
0x01, 0x00, 0x03, 0x06, 0xB8, 0x04, 0x3F, 0x01, 0x0A, 0x38, 0x0E, 0x06,
|
||||
0x0E, 0x25, 0x02, 0x07, 0x05, 0x02, 0x6A, 0x28, 0x01, 0x00, 0x03, 0x07,
|
||||
0xB8, 0x04, 0x2B, 0x01, 0x0B, 0x38, 0x0E, 0x06, 0x0E, 0x25, 0x02, 0x08,
|
||||
0x05, 0x02, 0x6A, 0x28, 0x01, 0x00, 0x03, 0x08, 0xB8, 0x04, 0x17, 0x01,
|
||||
0x10, 0x38, 0x0E, 0x06, 0x0E, 0x25, 0x02, 0x09, 0x05, 0x02, 0x6A, 0x28,
|
||||
0x01, 0x00, 0x03, 0x09, 0xAC, 0x04, 0x03, 0x6A, 0x28, 0x25, 0x04, 0xFE,
|
||||
0x02, 0x6C, 0x28, 0x01, 0x00, 0x03, 0x04, 0xBD, 0x04, 0x80, 0x53, 0x01,
|
||||
0x0D, 0x38, 0x0E, 0x06, 0x0E, 0x25, 0x02, 0x06, 0x05, 0x02, 0x6C, 0x28,
|
||||
0x01, 0x00, 0x03, 0x06, 0xBA, 0x04, 0x3F, 0x01, 0x0A, 0x38, 0x0E, 0x06,
|
||||
0x0E, 0x25, 0x02, 0x07, 0x05, 0x02, 0x6C, 0x28, 0x01, 0x00, 0x03, 0x07,
|
||||
0xBA, 0x04, 0x2B, 0x01, 0x0B, 0x38, 0x0E, 0x06, 0x0E, 0x25, 0x02, 0x08,
|
||||
0x05, 0x02, 0x6C, 0x28, 0x01, 0x00, 0x03, 0x08, 0xBA, 0x04, 0x17, 0x01,
|
||||
0x10, 0x38, 0x0E, 0x06, 0x0E, 0x25, 0x02, 0x09, 0x05, 0x02, 0x6C, 0x28,
|
||||
0x01, 0x00, 0x03, 0x09, 0xAE, 0x04, 0x03, 0x6C, 0x28, 0x25, 0x04, 0xFE,
|
||||
0x64, 0x02, 0x04, 0x06, 0x0D, 0x02, 0x04, 0x01, 0x05, 0x0F, 0x06, 0x02,
|
||||
0x67, 0x28, 0x01, 0x01, 0x86, 0x3E, 0x99, 0x04, 0x0C, 0xA2, 0x01, 0x05,
|
||||
0x0F, 0x06, 0x02, 0x67, 0x28, 0x01, 0x01, 0x86, 0x3E, 0x99, 0x02, 0x01,
|
||||
0x00, 0x04, 0xB6, 0x01, 0x0C, 0x0E, 0x05, 0x02, 0x70, 0x28, 0xBF, 0x01,
|
||||
0x03, 0x0E, 0x05, 0x02, 0x6B, 0x28, 0xBD, 0x26, 0x7A, 0x3E, 0x26, 0x01,
|
||||
0x20, 0x10, 0x06, 0x02, 0x6B, 0x28, 0x40, 0x44, 0x11, 0x01, 0x01, 0x17,
|
||||
0x05, 0x02, 0x6B, 0x28, 0xBF, 0x26, 0x01, 0x81, 0x05, 0x0F, 0x06, 0x02,
|
||||
0x6B, 0x28, 0x26, 0x7C, 0x3E, 0x7B, 0x44, 0xB4, 0x90, 0x2C, 0x01, 0x86,
|
||||
0x03, 0x10, 0x03, 0x00, 0x77, 0x2C, 0xC9, 0x03, 0x01, 0x01, 0x02, 0x03,
|
||||
0x02, 0x02, 0x00, 0x06, 0x21, 0xBF, 0x26, 0x26, 0x01, 0x02, 0x0A, 0x44,
|
||||
0x01, 0x06, 0x0F, 0x37, 0x06, 0x02, 0x6B, 0x28, 0x03, 0x02, 0xBF, 0x02,
|
||||
0x01, 0x01, 0x01, 0x0B, 0x01, 0x03, 0x08, 0x0E, 0x05, 0x02, 0x6B, 0x28,
|
||||
0x04, 0x08, 0x02, 0x01, 0x06, 0x04, 0x01, 0x00, 0x03, 0x02, 0xBD, 0x26,
|
||||
0x03, 0x03, 0x26, 0x01, 0x84, 0x00, 0x0F, 0x06, 0x02, 0x6C, 0x28, 0x82,
|
||||
0x44, 0xB4, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x4E, 0x26, 0x06, 0x01,
|
||||
0x28, 0x25, 0x99, 0x00, 0x02, 0x03, 0x00, 0x03, 0x01, 0x02, 0x00, 0x95,
|
||||
0x02, 0x01, 0x02, 0x00, 0x39, 0x26, 0x01, 0x00, 0x0E, 0x06, 0x02, 0x5E,
|
||||
0x00, 0xCE, 0x04, 0x74, 0x02, 0x01, 0x00, 0x03, 0x00, 0xBF, 0xA8, 0x26,
|
||||
0x06, 0x80, 0x43, 0xBF, 0x01, 0x01, 0x38, 0x0E, 0x06, 0x06, 0x25, 0x01,
|
||||
0x69, 0x28, 0x01, 0x01, 0x88, 0x3E, 0x9B, 0x04, 0x0C, 0xA4, 0x01, 0x05,
|
||||
0x0F, 0x06, 0x02, 0x69, 0x28, 0x01, 0x01, 0x88, 0x3E, 0x9B, 0x02, 0x01,
|
||||
0x00, 0x04, 0xB8, 0x01, 0x0C, 0x0E, 0x05, 0x02, 0x72, 0x28, 0xC1, 0x01,
|
||||
0x03, 0x0E, 0x05, 0x02, 0x6D, 0x28, 0xBF, 0x26, 0x7C, 0x3E, 0x26, 0x01,
|
||||
0x20, 0x10, 0x06, 0x02, 0x6D, 0x28, 0x40, 0x44, 0x11, 0x01, 0x01, 0x17,
|
||||
0x05, 0x02, 0x6D, 0x28, 0xC1, 0x26, 0x01, 0x81, 0x05, 0x0F, 0x06, 0x02,
|
||||
0x6D, 0x28, 0x26, 0x7E, 0x3E, 0x7D, 0x44, 0xB6, 0x92, 0x2C, 0x01, 0x86,
|
||||
0x03, 0x10, 0x03, 0x00, 0x79, 0x2C, 0xCB, 0x03, 0x01, 0x01, 0x02, 0x03,
|
||||
0x02, 0x02, 0x00, 0x06, 0x21, 0xC1, 0x26, 0x26, 0x01, 0x02, 0x0A, 0x44,
|
||||
0x01, 0x06, 0x0F, 0x37, 0x06, 0x02, 0x6D, 0x28, 0x03, 0x02, 0xC1, 0x02,
|
||||
0x01, 0x01, 0x01, 0x0B, 0x01, 0x03, 0x08, 0x0E, 0x05, 0x02, 0x6D, 0x28,
|
||||
0x04, 0x08, 0x02, 0x01, 0x06, 0x04, 0x01, 0x00, 0x03, 0x02, 0xBF, 0x26,
|
||||
0x03, 0x03, 0x26, 0x01, 0x84, 0x00, 0x0F, 0x06, 0x02, 0x6E, 0x28, 0x84,
|
||||
0x44, 0xB6, 0x02, 0x02, 0x02, 0x01, 0x02, 0x03, 0x50, 0x26, 0x06, 0x01,
|
||||
0x28, 0x25, 0x9B, 0x00, 0x02, 0x03, 0x00, 0x03, 0x01, 0x02, 0x00, 0x97,
|
||||
0x02, 0x01, 0x02, 0x00, 0x39, 0x26, 0x01, 0x00, 0x0E, 0x06, 0x02, 0x60,
|
||||
0x00, 0xD0, 0x04, 0x74, 0x02, 0x01, 0x00, 0x03, 0x00, 0xC1, 0xAA, 0x26,
|
||||
0x06, 0x80, 0x43, 0xC1, 0x01, 0x01, 0x38, 0x0E, 0x06, 0x06, 0x25, 0x01,
|
||||
0x81, 0x7F, 0x04, 0x2E, 0x01, 0x80, 0x40, 0x38, 0x0E, 0x06, 0x07, 0x25,
|
||||
0x01, 0x83, 0xFE, 0x00, 0x04, 0x20, 0x01, 0x80, 0x41, 0x38, 0x0E, 0x06,
|
||||
0x07, 0x25, 0x01, 0x84, 0x80, 0x00, 0x04, 0x12, 0x01, 0x80, 0x42, 0x38,
|
||||
0x0E, 0x06, 0x07, 0x25, 0x01, 0x88, 0x80, 0x00, 0x04, 0x04, 0x01, 0x00,
|
||||
0x44, 0x25, 0x02, 0x00, 0x37, 0x03, 0x00, 0x04, 0xFF, 0x39, 0x99, 0x77,
|
||||
0x2C, 0xC7, 0x05, 0x09, 0x02, 0x00, 0x01, 0x83, 0xFF, 0x7F, 0x17, 0x03,
|
||||
0x00, 0x90, 0x2C, 0x01, 0x86, 0x03, 0x10, 0x06, 0x3A, 0xB9, 0x26, 0x7F,
|
||||
0x44, 0x25, 0x02, 0x00, 0x37, 0x03, 0x00, 0x04, 0xFF, 0x39, 0x9B, 0x79,
|
||||
0x2C, 0xC9, 0x05, 0x09, 0x02, 0x00, 0x01, 0x83, 0xFF, 0x7F, 0x17, 0x03,
|
||||
0x00, 0x92, 0x2C, 0x01, 0x86, 0x03, 0x10, 0x06, 0x3A, 0xBB, 0x26, 0x81,
|
||||
0x3D, 0x41, 0x25, 0x26, 0x01, 0x08, 0x0B, 0x37, 0x01, 0x8C, 0x80, 0x00,
|
||||
0x37, 0x17, 0x02, 0x00, 0x17, 0x02, 0x00, 0x01, 0x8C, 0x80, 0x00, 0x17,
|
||||
0x06, 0x19, 0x26, 0x01, 0x81, 0x7F, 0x17, 0x06, 0x05, 0x01, 0x84, 0x80,
|
||||
0x00, 0x37, 0x26, 0x01, 0x83, 0xFE, 0x00, 0x17, 0x06, 0x05, 0x01, 0x88,
|
||||
0x80, 0x00, 0x37, 0x03, 0x00, 0x04, 0x09, 0x02, 0x00, 0x01, 0x8C, 0x88,
|
||||
0x01, 0x17, 0x03, 0x00, 0x16, 0xBD, 0xA8, 0x26, 0x06, 0x23, 0xBD, 0xA8,
|
||||
0x01, 0x17, 0x03, 0x00, 0x16, 0xBF, 0xAA, 0x26, 0x06, 0x23, 0xBF, 0xAA,
|
||||
0x26, 0x15, 0x26, 0x06, 0x18, 0x26, 0x01, 0x82, 0x00, 0x0F, 0x06, 0x05,
|
||||
0x01, 0x82, 0x00, 0x04, 0x01, 0x26, 0x03, 0x01, 0x82, 0x02, 0x01, 0xB4,
|
||||
0x02, 0x01, 0x12, 0x04, 0x65, 0x99, 0x13, 0x04, 0x5A, 0x99, 0x14, 0x99,
|
||||
0x02, 0x00, 0x2A, 0x00, 0x00, 0xB7, 0x26, 0x58, 0x06, 0x07, 0x25, 0x06,
|
||||
0x02, 0x64, 0x28, 0x04, 0x74, 0x00, 0x00, 0xC0, 0x01, 0x03, 0xBE, 0x44,
|
||||
0x25, 0x44, 0x00, 0x00, 0xBD, 0xC4, 0x00, 0x03, 0x01, 0x00, 0x03, 0x00,
|
||||
0xBD, 0xA8, 0x26, 0x06, 0x80, 0x50, 0xBF, 0x03, 0x01, 0xBF, 0x03, 0x02,
|
||||
0x01, 0x82, 0x00, 0x04, 0x01, 0x26, 0x03, 0x01, 0x84, 0x02, 0x01, 0xB6,
|
||||
0x02, 0x01, 0x12, 0x04, 0x65, 0x9B, 0x13, 0x04, 0x5A, 0x9B, 0x14, 0x9B,
|
||||
0x02, 0x00, 0x2A, 0x00, 0x00, 0xB9, 0x26, 0x5A, 0x06, 0x07, 0x25, 0x06,
|
||||
0x02, 0x66, 0x28, 0x04, 0x74, 0x00, 0x00, 0xC2, 0x01, 0x03, 0xC0, 0x44,
|
||||
0x25, 0x44, 0x00, 0x00, 0xBF, 0xC6, 0x00, 0x03, 0x01, 0x00, 0x03, 0x00,
|
||||
0xBF, 0xAA, 0x26, 0x06, 0x80, 0x50, 0xC1, 0x03, 0x01, 0xC1, 0x03, 0x02,
|
||||
0x02, 0x01, 0x01, 0x08, 0x0E, 0x06, 0x16, 0x02, 0x02, 0x01, 0x0F, 0x0C,
|
||||
0x06, 0x0D, 0x01, 0x01, 0x02, 0x02, 0x01, 0x10, 0x08, 0x0B, 0x02, 0x00,
|
||||
0x37, 0x03, 0x00, 0x04, 0x2A, 0x02, 0x01, 0x01, 0x02, 0x10, 0x02, 0x01,
|
||||
0x01, 0x06, 0x0C, 0x17, 0x02, 0x02, 0x01, 0x01, 0x0E, 0x02, 0x02, 0x01,
|
||||
0x03, 0x0E, 0x37, 0x17, 0x06, 0x11, 0x02, 0x00, 0x01, 0x01, 0x02, 0x02,
|
||||
0x5B, 0x01, 0x02, 0x0B, 0x02, 0x01, 0x08, 0x0B, 0x37, 0x03, 0x00, 0x04,
|
||||
0xFF, 0x2C, 0x99, 0x02, 0x00, 0x00, 0x00, 0xBD, 0x01, 0x01, 0x0E, 0x05,
|
||||
0x02, 0x63, 0x28, 0xBF, 0x01, 0x08, 0x08, 0x80, 0x2E, 0x0E, 0x05, 0x02,
|
||||
0x63, 0x28, 0x00, 0x00, 0xBD, 0x86, 0x2E, 0x05, 0x15, 0x01, 0x01, 0x0E,
|
||||
0x05, 0x02, 0x67, 0x28, 0xBF, 0x01, 0x00, 0x0E, 0x05, 0x02, 0x67, 0x28,
|
||||
0x01, 0x02, 0x86, 0x3E, 0x04, 0x1C, 0x01, 0x19, 0x0E, 0x05, 0x02, 0x67,
|
||||
0x28, 0xBF, 0x01, 0x18, 0x0E, 0x05, 0x02, 0x67, 0x28, 0x82, 0x01, 0x18,
|
||||
0xB4, 0x87, 0x82, 0x01, 0x18, 0x30, 0x05, 0x02, 0x67, 0x28, 0x00, 0x00,
|
||||
0xBD, 0x06, 0x02, 0x68, 0x28, 0x00, 0x00, 0x01, 0x02, 0x95, 0xC0, 0x01,
|
||||
0x08, 0x0B, 0xC0, 0x08, 0x00, 0x00, 0x01, 0x03, 0x95, 0xC0, 0x01, 0x08,
|
||||
0x0B, 0xC0, 0x08, 0x01, 0x08, 0x0B, 0xC0, 0x08, 0x00, 0x00, 0x01, 0x01,
|
||||
0x95, 0xC0, 0x00, 0x00, 0x3A, 0x26, 0x56, 0x05, 0x01, 0x00, 0x25, 0xCE,
|
||||
0x04, 0x76, 0x02, 0x03, 0x00, 0x8F, 0x2E, 0x03, 0x01, 0x01, 0x00, 0x26,
|
||||
0x02, 0x01, 0x0A, 0x06, 0x10, 0x26, 0x01, 0x01, 0x0B, 0x8E, 0x08, 0x2C,
|
||||
0x02, 0x00, 0x0E, 0x06, 0x01, 0x00, 0x5A, 0x04, 0x6A, 0x25, 0x01, 0x7F,
|
||||
0x00, 0x00, 0x01, 0x15, 0x85, 0x3E, 0x44, 0x50, 0x25, 0x50, 0x25, 0x29,
|
||||
0x00, 0x00, 0x01, 0x01, 0x44, 0xC2, 0x00, 0x00, 0x44, 0x38, 0x95, 0x44,
|
||||
0x26, 0x06, 0x05, 0xC0, 0x25, 0x5B, 0x04, 0x78, 0x25, 0x00, 0x00, 0x26,
|
||||
0x01, 0x81, 0xAC, 0x00, 0x0E, 0x06, 0x04, 0x25, 0x01, 0x7F, 0x00, 0x98,
|
||||
0x57, 0x00, 0x02, 0x03, 0x00, 0x77, 0x2C, 0x98, 0x03, 0x01, 0x02, 0x01,
|
||||
0x5D, 0x01, 0x02, 0x0B, 0x02, 0x01, 0x08, 0x0B, 0x37, 0x03, 0x00, 0x04,
|
||||
0xFF, 0x2C, 0x9B, 0x02, 0x00, 0x00, 0x00, 0xBF, 0x01, 0x01, 0x0E, 0x05,
|
||||
0x02, 0x65, 0x28, 0xC1, 0x01, 0x08, 0x08, 0x82, 0x2E, 0x0E, 0x05, 0x02,
|
||||
0x65, 0x28, 0x00, 0x00, 0xBF, 0x88, 0x2E, 0x05, 0x15, 0x01, 0x01, 0x0E,
|
||||
0x05, 0x02, 0x69, 0x28, 0xC1, 0x01, 0x00, 0x0E, 0x05, 0x02, 0x69, 0x28,
|
||||
0x01, 0x02, 0x88, 0x3E, 0x04, 0x1C, 0x01, 0x19, 0x0E, 0x05, 0x02, 0x69,
|
||||
0x28, 0xC1, 0x01, 0x18, 0x0E, 0x05, 0x02, 0x69, 0x28, 0x84, 0x01, 0x18,
|
||||
0xB6, 0x89, 0x84, 0x01, 0x18, 0x30, 0x05, 0x02, 0x69, 0x28, 0x00, 0x00,
|
||||
0xBF, 0x06, 0x02, 0x6A, 0x28, 0x00, 0x00, 0x01, 0x02, 0x97, 0xC2, 0x01,
|
||||
0x08, 0x0B, 0xC2, 0x08, 0x00, 0x00, 0x01, 0x03, 0x97, 0xC2, 0x01, 0x08,
|
||||
0x0B, 0xC2, 0x08, 0x01, 0x08, 0x0B, 0xC2, 0x08, 0x00, 0x00, 0x01, 0x01,
|
||||
0x97, 0xC2, 0x00, 0x00, 0x3A, 0x26, 0x58, 0x05, 0x01, 0x00, 0x25, 0xD0,
|
||||
0x04, 0x76, 0x02, 0x03, 0x00, 0x91, 0x2E, 0x03, 0x01, 0x01, 0x00, 0x26,
|
||||
0x02, 0x01, 0x0A, 0x06, 0x10, 0x26, 0x01, 0x01, 0x0B, 0x90, 0x08, 0x2C,
|
||||
0x02, 0x00, 0x0E, 0x06, 0x01, 0x00, 0x5C, 0x04, 0x6A, 0x25, 0x01, 0x7F,
|
||||
0x00, 0x00, 0x01, 0x15, 0x87, 0x3E, 0x44, 0x52, 0x25, 0x52, 0x25, 0x29,
|
||||
0x00, 0x00, 0x01, 0x01, 0x44, 0xC4, 0x00, 0x00, 0x44, 0x38, 0x97, 0x44,
|
||||
0x26, 0x06, 0x05, 0xC2, 0x25, 0x5D, 0x04, 0x78, 0x25, 0x00, 0x00, 0x26,
|
||||
0x01, 0x81, 0xAC, 0x00, 0x0E, 0x06, 0x04, 0x25, 0x01, 0x7F, 0x00, 0x9A,
|
||||
0x59, 0x00, 0x02, 0x03, 0x00, 0x79, 0x2C, 0x9A, 0x03, 0x01, 0x02, 0x01,
|
||||
0x01, 0x0F, 0x17, 0x02, 0x01, 0x01, 0x04, 0x11, 0x01, 0x0F, 0x17, 0x02,
|
||||
0x01, 0x01, 0x08, 0x11, 0x01, 0x0F, 0x17, 0x01, 0x00, 0x38, 0x0E, 0x06,
|
||||
0x10, 0x25, 0x01, 0x00, 0x01, 0x18, 0x02, 0x00, 0x06, 0x03, 0x47, 0x04,
|
||||
0x01, 0x48, 0x04, 0x80, 0x68, 0x01, 0x01, 0x38, 0x0E, 0x06, 0x10, 0x25,
|
||||
0x01, 0x01, 0x01, 0x10, 0x02, 0x00, 0x06, 0x03, 0x47, 0x04, 0x01, 0x48,
|
||||
0x04, 0x80, 0x52, 0x01, 0x02, 0x38, 0x0E, 0x06, 0x0F, 0x25, 0x01, 0x01,
|
||||
0x01, 0x20, 0x02, 0x00, 0x06, 0x03, 0x47, 0x04, 0x01, 0x48, 0x04, 0x3D,
|
||||
0x01, 0x03, 0x38, 0x0E, 0x06, 0x0E, 0x25, 0x25, 0x01, 0x10, 0x02, 0x00,
|
||||
0x06, 0x03, 0x45, 0x04, 0x01, 0x46, 0x04, 0x29, 0x01, 0x04, 0x38, 0x0E,
|
||||
0x06, 0x0E, 0x25, 0x25, 0x01, 0x20, 0x02, 0x00, 0x06, 0x03, 0x45, 0x04,
|
||||
0x01, 0x46, 0x04, 0x15, 0x01, 0x05, 0x38, 0x0E, 0x06, 0x0C, 0x25, 0x25,
|
||||
0x02, 0x00, 0x06, 0x03, 0x49, 0x04, 0x01, 0x4A, 0x04, 0x03, 0x66, 0x28,
|
||||
0x25, 0x00, 0x00, 0x98, 0x01, 0x0C, 0x11, 0x01, 0x02, 0x0F, 0x00, 0x00,
|
||||
0x98, 0x01, 0x0C, 0x11, 0x26, 0x59, 0x44, 0x01, 0x03, 0x0A, 0x17, 0x00,
|
||||
0x00, 0x98, 0x01, 0x0C, 0x11, 0x01, 0x01, 0x0E, 0x00, 0x00, 0x98, 0x01,
|
||||
0x0C, 0x11, 0x58, 0x00, 0x00, 0x98, 0x01, 0x81, 0x70, 0x17, 0x01, 0x20,
|
||||
0x0D, 0x00, 0x00, 0x1B, 0x01, 0x00, 0x73, 0x2E, 0x26, 0x06, 0x22, 0x01,
|
||||
0x01, 0x38, 0x0E, 0x06, 0x06, 0x25, 0x01, 0x00, 0x9C, 0x04, 0x14, 0x01,
|
||||
0x02, 0x38, 0x0E, 0x06, 0x0D, 0x25, 0x75, 0x2E, 0x01, 0x01, 0x0E, 0x06,
|
||||
0x03, 0x01, 0x10, 0x37, 0x04, 0x01, 0x25, 0x04, 0x01, 0x25, 0x79, 0x2E,
|
||||
0x05, 0x33, 0x2F, 0x06, 0x30, 0x84, 0x2E, 0x01, 0x14, 0x38, 0x0E, 0x06,
|
||||
0x06, 0x25, 0x01, 0x02, 0x37, 0x04, 0x22, 0x01, 0x15, 0x38, 0x0E, 0x06,
|
||||
0x09, 0x25, 0xAB, 0x06, 0x03, 0x01, 0x7F, 0x9C, 0x04, 0x13, 0x01, 0x16,
|
||||
0x38, 0x0E, 0x06, 0x06, 0x25, 0x01, 0x01, 0x37, 0x04, 0x07, 0x25, 0x01,
|
||||
0x04, 0x37, 0x01, 0x00, 0x25, 0x1A, 0x06, 0x03, 0x01, 0x08, 0x37, 0x00,
|
||||
0x00, 0x1B, 0x26, 0x05, 0x13, 0x2F, 0x06, 0x10, 0x84, 0x2E, 0x01, 0x15,
|
||||
0x0E, 0x06, 0x08, 0x25, 0xAB, 0x01, 0x00, 0x75, 0x3E, 0x04, 0x01, 0x20,
|
||||
0x00, 0x00, 0xCC, 0x01, 0x07, 0x17, 0x01, 0x01, 0x0F, 0x06, 0x02, 0x70,
|
||||
0x28, 0x00, 0x01, 0x03, 0x00, 0x29, 0x1A, 0x06, 0x05, 0x02, 0x00, 0x85,
|
||||
0x3E, 0x00, 0xCC, 0x25, 0x04, 0x74, 0x00, 0x01, 0x14, 0xCF, 0x01, 0x01,
|
||||
0xDC, 0x29, 0x26, 0x01, 0x00, 0xC6, 0x01, 0x16, 0xCF, 0xD5, 0x29, 0x00,
|
||||
0x00, 0x01, 0x0B, 0xDC, 0x4C, 0x26, 0x26, 0x01, 0x03, 0x08, 0xDB, 0xDB,
|
||||
0x18, 0x26, 0x56, 0x06, 0x02, 0x25, 0x00, 0xDB, 0x1D, 0x26, 0x06, 0x05,
|
||||
0x82, 0x44, 0xD6, 0x04, 0x77, 0x25, 0x04, 0x6C, 0x00, 0x21, 0x01, 0x0F,
|
||||
0xDC, 0x26, 0x90, 0x2C, 0x01, 0x86, 0x03, 0x10, 0x06, 0x0C, 0x01, 0x04,
|
||||
0x08, 0xDB, 0x7E, 0x2E, 0xDC, 0x76, 0x2E, 0xDC, 0x04, 0x02, 0x5C, 0xDB,
|
||||
0x26, 0xDA, 0x82, 0x44, 0xD6, 0x00, 0x02, 0xA2, 0xA4, 0x08, 0xA0, 0x08,
|
||||
0xA3, 0x08, 0xA5, 0x08, 0xA1, 0x08, 0x27, 0x08, 0x03, 0x00, 0x01, 0x01,
|
||||
0xDC, 0x01, 0x27, 0x8C, 0x2E, 0x08, 0x8F, 0x2E, 0x01, 0x01, 0x0B, 0x08,
|
||||
0x02, 0x00, 0x06, 0x04, 0x5C, 0x02, 0x00, 0x08, 0x81, 0x2C, 0x38, 0x09,
|
||||
0x26, 0x59, 0x06, 0x24, 0x02, 0x00, 0x05, 0x04, 0x44, 0x5C, 0x44, 0x5D,
|
||||
0x01, 0x04, 0x09, 0x26, 0x56, 0x06, 0x03, 0x25, 0x01, 0x00, 0x26, 0x01,
|
||||
0x04, 0x08, 0x02, 0x00, 0x08, 0x03, 0x00, 0x44, 0x01, 0x04, 0x08, 0x38,
|
||||
0x08, 0x44, 0x04, 0x03, 0x25, 0x01, 0x7F, 0x03, 0x01, 0xDB, 0x92, 0x2C,
|
||||
0xDA, 0x78, 0x01, 0x04, 0x19, 0x78, 0x01, 0x04, 0x08, 0x01, 0x1C, 0x32,
|
||||
0x78, 0x01, 0x20, 0xD6, 0x8B, 0x8C, 0x2E, 0xD8, 0x8F, 0x2E, 0x26, 0x01,
|
||||
0x01, 0x0B, 0xDA, 0x8E, 0x44, 0x26, 0x06, 0x0F, 0x5B, 0x38, 0x2C, 0x26,
|
||||
0xC5, 0x05, 0x02, 0x60, 0x28, 0xDA, 0x44, 0x5C, 0x44, 0x04, 0x6E, 0x5E,
|
||||
0x01, 0x01, 0xDC, 0x01, 0x00, 0xDC, 0x02, 0x00, 0x06, 0x81, 0x5A, 0x02,
|
||||
0x00, 0xDA, 0xA2, 0x06, 0x0E, 0x01, 0x83, 0xFE, 0x01, 0xDA, 0x87, 0xA2,
|
||||
0x01, 0x04, 0x09, 0x26, 0xDA, 0x5B, 0xD8, 0xA4, 0x06, 0x16, 0x01, 0x00,
|
||||
0xDA, 0x89, 0xA4, 0x01, 0x04, 0x09, 0x26, 0xDA, 0x01, 0x02, 0x09, 0x26,
|
||||
0xDA, 0x01, 0x00, 0xDC, 0x01, 0x03, 0x09, 0xD7, 0xA0, 0x06, 0x0C, 0x01,
|
||||
0x01, 0xDA, 0x01, 0x01, 0xDA, 0x80, 0x2E, 0x01, 0x08, 0x09, 0xDC, 0xA3,
|
||||
0x06, 0x19, 0x01, 0x0D, 0xDA, 0xA3, 0x01, 0x04, 0x09, 0x26, 0xDA, 0x01,
|
||||
0x02, 0x09, 0xDA, 0x42, 0x06, 0x03, 0x01, 0x03, 0xD9, 0x43, 0x06, 0x03,
|
||||
0x01, 0x01, 0xD9, 0xA5, 0x26, 0x06, 0x36, 0x01, 0x0A, 0xDA, 0x01, 0x04,
|
||||
0x09, 0x26, 0xDA, 0x5D, 0xDA, 0x40, 0x01, 0x00, 0x26, 0x01, 0x82, 0x80,
|
||||
0x80, 0x80, 0x00, 0x17, 0x06, 0x0A, 0x01, 0xFD, 0xFF, 0xFF, 0xFF, 0x7F,
|
||||
0x17, 0x01, 0x1D, 0xDA, 0x26, 0x01, 0x20, 0x0A, 0x06, 0x0C, 0x9E, 0x11,
|
||||
0x01, 0x01, 0x17, 0x06, 0x02, 0x26, 0xDA, 0x5A, 0x04, 0x6E, 0x5E, 0x04,
|
||||
0x01, 0x25, 0xA1, 0x06, 0x0A, 0x01, 0x0B, 0xDA, 0x01, 0x02, 0xDA, 0x01,
|
||||
0x82, 0x00, 0xDA, 0x27, 0x26, 0x06, 0x1F, 0x01, 0x10, 0xDA, 0x01, 0x04,
|
||||
0x09, 0x26, 0xDA, 0x5D, 0xDA, 0x83, 0x2C, 0x01, 0x00, 0x9E, 0x0F, 0x06,
|
||||
0x0A, 0x26, 0x1E, 0x26, 0xDC, 0x82, 0x44, 0xD6, 0x5A, 0x04, 0x72, 0x5E,
|
||||
0x04, 0x01, 0x25, 0x02, 0x01, 0x56, 0x05, 0x11, 0x01, 0x15, 0xDA, 0x02,
|
||||
0x01, 0x26, 0xDA, 0x26, 0x06, 0x06, 0x5B, 0x01, 0x00, 0xDC, 0x04, 0x77,
|
||||
0x25, 0x00, 0x00, 0x01, 0x10, 0xDC, 0x77, 0x2C, 0x26, 0xCA, 0x06, 0x0C,
|
||||
0xA9, 0x23, 0x26, 0x5C, 0xDB, 0x26, 0xDA, 0x82, 0x44, 0xD6, 0x04, 0x0D,
|
||||
0x26, 0xC8, 0x44, 0xA9, 0x22, 0x26, 0x5A, 0xDB, 0x26, 0xDC, 0x82, 0x44,
|
||||
0xD6, 0x00, 0x00, 0x9A, 0x01, 0x14, 0xDC, 0x01, 0x0C, 0xDB, 0x82, 0x01,
|
||||
0x0C, 0xD6, 0x00, 0x00, 0x4F, 0x26, 0x01, 0x00, 0x0E, 0x06, 0x02, 0x5E,
|
||||
0x00, 0xCC, 0x25, 0x04, 0x73, 0x00, 0x26, 0xDA, 0xD6, 0x00, 0x00, 0x26,
|
||||
0xDC, 0xD6, 0x00, 0x01, 0x03, 0x00, 0x41, 0x25, 0x26, 0x01, 0x10, 0x17,
|
||||
0x06, 0x06, 0x01, 0x04, 0xDC, 0x02, 0x00, 0xDC, 0x26, 0x01, 0x08, 0x17,
|
||||
0x06, 0x06, 0x01, 0x03, 0xDC, 0x02, 0x00, 0xDC, 0x26, 0x01, 0x20, 0x17,
|
||||
0x06, 0x06, 0x01, 0x05, 0xDC, 0x02, 0x00, 0xDC, 0x26, 0x01, 0x80, 0x40,
|
||||
0x17, 0x06, 0x06, 0x01, 0x06, 0xDC, 0x02, 0x00, 0xDC, 0x01, 0x04, 0x17,
|
||||
0x06, 0x06, 0x01, 0x02, 0xDC, 0x02, 0x00, 0xDC, 0x00, 0x00, 0x26, 0x01,
|
||||
0x08, 0x4D, 0xDC, 0xDC, 0x00, 0x00, 0x26, 0x01, 0x10, 0x4D, 0xDC, 0xDA,
|
||||
0x00, 0x00, 0x26, 0x50, 0x06, 0x02, 0x25, 0x00, 0xCC, 0x25, 0x04, 0x76
|
||||
0x10, 0x25, 0x01, 0x00, 0x01, 0x18, 0x02, 0x00, 0x06, 0x03, 0x49, 0x04,
|
||||
0x01, 0x4A, 0x04, 0x81, 0x0D, 0x01, 0x01, 0x38, 0x0E, 0x06, 0x10, 0x25,
|
||||
0x01, 0x01, 0x01, 0x10, 0x02, 0x00, 0x06, 0x03, 0x49, 0x04, 0x01, 0x4A,
|
||||
0x04, 0x80, 0x77, 0x01, 0x02, 0x38, 0x0E, 0x06, 0x10, 0x25, 0x01, 0x01,
|
||||
0x01, 0x20, 0x02, 0x00, 0x06, 0x03, 0x49, 0x04, 0x01, 0x4A, 0x04, 0x80,
|
||||
0x61, 0x01, 0x03, 0x38, 0x0E, 0x06, 0x0F, 0x25, 0x25, 0x01, 0x10, 0x02,
|
||||
0x00, 0x06, 0x03, 0x47, 0x04, 0x01, 0x48, 0x04, 0x80, 0x4C, 0x01, 0x04,
|
||||
0x38, 0x0E, 0x06, 0x0E, 0x25, 0x25, 0x01, 0x20, 0x02, 0x00, 0x06, 0x03,
|
||||
0x47, 0x04, 0x01, 0x48, 0x04, 0x38, 0x01, 0x05, 0x38, 0x0E, 0x06, 0x0C,
|
||||
0x25, 0x25, 0x02, 0x00, 0x06, 0x03, 0x4B, 0x04, 0x01, 0x4C, 0x04, 0x26,
|
||||
0x26, 0x01, 0x09, 0x0F, 0x06, 0x02, 0x68, 0x28, 0x44, 0x25, 0x26, 0x01,
|
||||
0x01, 0x17, 0x01, 0x04, 0x0B, 0x01, 0x10, 0x08, 0x44, 0x01, 0x08, 0x17,
|
||||
0x01, 0x10, 0x44, 0x09, 0x02, 0x00, 0x06, 0x03, 0x45, 0x04, 0x01, 0x46,
|
||||
0x00, 0x25, 0x00, 0x00, 0x9A, 0x01, 0x0C, 0x11, 0x01, 0x02, 0x0F, 0x00,
|
||||
0x00, 0x9A, 0x01, 0x0C, 0x11, 0x26, 0x5B, 0x44, 0x01, 0x03, 0x0A, 0x17,
|
||||
0x00, 0x00, 0x9A, 0x01, 0x0C, 0x11, 0x01, 0x01, 0x0E, 0x00, 0x00, 0x9A,
|
||||
0x01, 0x0C, 0x11, 0x5A, 0x00, 0x00, 0x9A, 0x01, 0x81, 0x70, 0x17, 0x01,
|
||||
0x20, 0x0D, 0x00, 0x00, 0x1B, 0x01, 0x00, 0x75, 0x2E, 0x26, 0x06, 0x22,
|
||||
0x01, 0x01, 0x38, 0x0E, 0x06, 0x06, 0x25, 0x01, 0x00, 0x9E, 0x04, 0x14,
|
||||
0x01, 0x02, 0x38, 0x0E, 0x06, 0x0D, 0x25, 0x77, 0x2E, 0x01, 0x01, 0x0E,
|
||||
0x06, 0x03, 0x01, 0x10, 0x37, 0x04, 0x01, 0x25, 0x04, 0x01, 0x25, 0x7B,
|
||||
0x2E, 0x05, 0x33, 0x2F, 0x06, 0x30, 0x86, 0x2E, 0x01, 0x14, 0x38, 0x0E,
|
||||
0x06, 0x06, 0x25, 0x01, 0x02, 0x37, 0x04, 0x22, 0x01, 0x15, 0x38, 0x0E,
|
||||
0x06, 0x09, 0x25, 0xAD, 0x06, 0x03, 0x01, 0x7F, 0x9E, 0x04, 0x13, 0x01,
|
||||
0x16, 0x38, 0x0E, 0x06, 0x06, 0x25, 0x01, 0x01, 0x37, 0x04, 0x07, 0x25,
|
||||
0x01, 0x04, 0x37, 0x01, 0x00, 0x25, 0x1A, 0x06, 0x03, 0x01, 0x08, 0x37,
|
||||
0x00, 0x00, 0x1B, 0x26, 0x05, 0x13, 0x2F, 0x06, 0x10, 0x86, 0x2E, 0x01,
|
||||
0x15, 0x0E, 0x06, 0x08, 0x25, 0xAD, 0x01, 0x00, 0x77, 0x3E, 0x04, 0x01,
|
||||
0x20, 0x00, 0x00, 0xCE, 0x01, 0x07, 0x17, 0x01, 0x01, 0x0F, 0x06, 0x02,
|
||||
0x72, 0x28, 0x00, 0x01, 0x03, 0x00, 0x29, 0x1A, 0x06, 0x05, 0x02, 0x00,
|
||||
0x87, 0x3E, 0x00, 0xCE, 0x25, 0x04, 0x74, 0x00, 0x01, 0x14, 0xD1, 0x01,
|
||||
0x01, 0xDE, 0x29, 0x26, 0x01, 0x00, 0xC8, 0x01, 0x16, 0xD1, 0xD7, 0x29,
|
||||
0x00, 0x00, 0x01, 0x0B, 0xDE, 0x4E, 0x26, 0x26, 0x01, 0x03, 0x08, 0xDD,
|
||||
0xDD, 0x18, 0x26, 0x58, 0x06, 0x02, 0x25, 0x00, 0xDD, 0x1D, 0x26, 0x06,
|
||||
0x05, 0x84, 0x44, 0xD8, 0x04, 0x77, 0x25, 0x04, 0x6C, 0x00, 0x21, 0x01,
|
||||
0x0F, 0xDE, 0x26, 0x92, 0x2C, 0x01, 0x86, 0x03, 0x10, 0x06, 0x0C, 0x01,
|
||||
0x04, 0x08, 0xDD, 0x80, 0x2E, 0xDE, 0x78, 0x2E, 0xDE, 0x04, 0x02, 0x5E,
|
||||
0xDD, 0x26, 0xDC, 0x84, 0x44, 0xD8, 0x00, 0x02, 0xA4, 0xA6, 0x08, 0xA2,
|
||||
0x08, 0xA5, 0x08, 0xA7, 0x08, 0xA3, 0x08, 0x27, 0x08, 0x03, 0x00, 0x01,
|
||||
0x01, 0xDE, 0x01, 0x27, 0x8E, 0x2E, 0x08, 0x91, 0x2E, 0x01, 0x01, 0x0B,
|
||||
0x08, 0x02, 0x00, 0x06, 0x04, 0x5E, 0x02, 0x00, 0x08, 0x83, 0x2C, 0x38,
|
||||
0x09, 0x26, 0x5B, 0x06, 0x24, 0x02, 0x00, 0x05, 0x04, 0x44, 0x5E, 0x44,
|
||||
0x5F, 0x01, 0x04, 0x09, 0x26, 0x58, 0x06, 0x03, 0x25, 0x01, 0x00, 0x26,
|
||||
0x01, 0x04, 0x08, 0x02, 0x00, 0x08, 0x03, 0x00, 0x44, 0x01, 0x04, 0x08,
|
||||
0x38, 0x08, 0x44, 0x04, 0x03, 0x25, 0x01, 0x7F, 0x03, 0x01, 0xDD, 0x94,
|
||||
0x2C, 0xDC, 0x7A, 0x01, 0x04, 0x19, 0x7A, 0x01, 0x04, 0x08, 0x01, 0x1C,
|
||||
0x32, 0x7A, 0x01, 0x20, 0xD8, 0x8D, 0x8E, 0x2E, 0xDA, 0x91, 0x2E, 0x26,
|
||||
0x01, 0x01, 0x0B, 0xDC, 0x90, 0x44, 0x26, 0x06, 0x0F, 0x5D, 0x38, 0x2C,
|
||||
0x26, 0xC7, 0x05, 0x02, 0x62, 0x28, 0xDC, 0x44, 0x5E, 0x44, 0x04, 0x6E,
|
||||
0x60, 0x01, 0x01, 0xDE, 0x01, 0x00, 0xDE, 0x02, 0x00, 0x06, 0x81, 0x5A,
|
||||
0x02, 0x00, 0xDC, 0xA4, 0x06, 0x0E, 0x01, 0x83, 0xFE, 0x01, 0xDC, 0x89,
|
||||
0xA4, 0x01, 0x04, 0x09, 0x26, 0xDC, 0x5D, 0xDA, 0xA6, 0x06, 0x16, 0x01,
|
||||
0x00, 0xDC, 0x8B, 0xA6, 0x01, 0x04, 0x09, 0x26, 0xDC, 0x01, 0x02, 0x09,
|
||||
0x26, 0xDC, 0x01, 0x00, 0xDE, 0x01, 0x03, 0x09, 0xD9, 0xA2, 0x06, 0x0C,
|
||||
0x01, 0x01, 0xDC, 0x01, 0x01, 0xDC, 0x82, 0x2E, 0x01, 0x08, 0x09, 0xDE,
|
||||
0xA5, 0x06, 0x19, 0x01, 0x0D, 0xDC, 0xA5, 0x01, 0x04, 0x09, 0x26, 0xDC,
|
||||
0x01, 0x02, 0x09, 0xDC, 0x42, 0x06, 0x03, 0x01, 0x03, 0xDB, 0x43, 0x06,
|
||||
0x03, 0x01, 0x01, 0xDB, 0xA7, 0x26, 0x06, 0x36, 0x01, 0x0A, 0xDC, 0x01,
|
||||
0x04, 0x09, 0x26, 0xDC, 0x5F, 0xDC, 0x40, 0x01, 0x00, 0x26, 0x01, 0x82,
|
||||
0x80, 0x80, 0x80, 0x00, 0x17, 0x06, 0x0A, 0x01, 0xFD, 0xFF, 0xFF, 0xFF,
|
||||
0x7F, 0x17, 0x01, 0x1D, 0xDC, 0x26, 0x01, 0x20, 0x0A, 0x06, 0x0C, 0xA0,
|
||||
0x11, 0x01, 0x01, 0x17, 0x06, 0x02, 0x26, 0xDC, 0x5C, 0x04, 0x6E, 0x60,
|
||||
0x04, 0x01, 0x25, 0xA3, 0x06, 0x0A, 0x01, 0x0B, 0xDC, 0x01, 0x02, 0xDC,
|
||||
0x01, 0x82, 0x00, 0xDC, 0x27, 0x26, 0x06, 0x1F, 0x01, 0x10, 0xDC, 0x01,
|
||||
0x04, 0x09, 0x26, 0xDC, 0x5F, 0xDC, 0x85, 0x2C, 0x01, 0x00, 0xA0, 0x0F,
|
||||
0x06, 0x0A, 0x26, 0x1E, 0x26, 0xDE, 0x84, 0x44, 0xD8, 0x5C, 0x04, 0x72,
|
||||
0x60, 0x04, 0x01, 0x25, 0x02, 0x01, 0x58, 0x05, 0x11, 0x01, 0x15, 0xDC,
|
||||
0x02, 0x01, 0x26, 0xDC, 0x26, 0x06, 0x06, 0x5D, 0x01, 0x00, 0xDE, 0x04,
|
||||
0x77, 0x25, 0x00, 0x00, 0x01, 0x10, 0xDE, 0x79, 0x2C, 0x26, 0xCC, 0x06,
|
||||
0x0C, 0xAB, 0x23, 0x26, 0x5E, 0xDD, 0x26, 0xDC, 0x84, 0x44, 0xD8, 0x04,
|
||||
0x0D, 0x26, 0xCA, 0x44, 0xAB, 0x22, 0x26, 0x5C, 0xDD, 0x26, 0xDE, 0x84,
|
||||
0x44, 0xD8, 0x00, 0x00, 0x9C, 0x01, 0x14, 0xDE, 0x01, 0x0C, 0xDD, 0x84,
|
||||
0x01, 0x0C, 0xD8, 0x00, 0x00, 0x51, 0x26, 0x01, 0x00, 0x0E, 0x06, 0x02,
|
||||
0x60, 0x00, 0xCE, 0x25, 0x04, 0x73, 0x00, 0x26, 0xDC, 0xD8, 0x00, 0x00,
|
||||
0x26, 0xDE, 0xD8, 0x00, 0x01, 0x03, 0x00, 0x41, 0x25, 0x26, 0x01, 0x10,
|
||||
0x17, 0x06, 0x06, 0x01, 0x04, 0xDE, 0x02, 0x00, 0xDE, 0x26, 0x01, 0x08,
|
||||
0x17, 0x06, 0x06, 0x01, 0x03, 0xDE, 0x02, 0x00, 0xDE, 0x26, 0x01, 0x20,
|
||||
0x17, 0x06, 0x06, 0x01, 0x05, 0xDE, 0x02, 0x00, 0xDE, 0x26, 0x01, 0x80,
|
||||
0x40, 0x17, 0x06, 0x06, 0x01, 0x06, 0xDE, 0x02, 0x00, 0xDE, 0x01, 0x04,
|
||||
0x17, 0x06, 0x06, 0x01, 0x02, 0xDE, 0x02, 0x00, 0xDE, 0x00, 0x00, 0x26,
|
||||
0x01, 0x08, 0x4F, 0xDE, 0xDE, 0x00, 0x00, 0x26, 0x01, 0x10, 0x4F, 0xDE,
|
||||
0xDC, 0x00, 0x00, 0x26, 0x52, 0x06, 0x02, 0x25, 0x00, 0xCE, 0x25, 0x04,
|
||||
0x76
|
||||
};
|
||||
|
||||
static const uint16_t t0_caddr[] = {
|
||||
|
|
@ -845,31 +852,31 @@ static const uint16_t t0_caddr[] = {
|
|||
2187,
|
||||
2202,
|
||||
2218,
|
||||
2374,
|
||||
2383,
|
||||
2396,
|
||||
2405,
|
||||
2412,
|
||||
2422,
|
||||
2528,
|
||||
2553,
|
||||
2566,
|
||||
2582,
|
||||
2600,
|
||||
2632,
|
||||
2666,
|
||||
3034,
|
||||
3070,
|
||||
3083,
|
||||
3097,
|
||||
3102,
|
||||
2411,
|
||||
2420,
|
||||
2433,
|
||||
2442,
|
||||
2449,
|
||||
2459,
|
||||
2565,
|
||||
2590,
|
||||
2603,
|
||||
2619,
|
||||
2637,
|
||||
2669,
|
||||
2703,
|
||||
3071,
|
||||
3107,
|
||||
3173,
|
||||
3181,
|
||||
3189
|
||||
3120,
|
||||
3134,
|
||||
3139,
|
||||
3144,
|
||||
3210,
|
||||
3218,
|
||||
3226
|
||||
};
|
||||
|
||||
#define T0_INTERPRETED 86
|
||||
#define T0_INTERPRETED 88
|
||||
|
||||
#define T0_ENTER(ip, rp, slot) do { \
|
||||
const unsigned char *t0_newip; \
|
||||
|
|
@ -890,7 +897,7 @@ name(void *ctx) \
|
|||
T0_ENTER(t0ctx->ip, t0ctx->rp, slot); \
|
||||
}
|
||||
|
||||
T0_DEFENTRY(br_ssl_hs_client_init_main, 167)
|
||||
T0_DEFENTRY(br_ssl_hs_client_init_main, 169)
|
||||
|
||||
#define T0_NEXT(t0ipp) (*(*(t0ipp)) ++)
|
||||
|
||||
|
|
@ -1634,6 +1641,36 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
}
|
||||
break;
|
||||
case 69: {
|
||||
/* switch-aesccm-in */
|
||||
|
||||
int is_client, prf_id;
|
||||
unsigned cipher_key_len, tag_len;
|
||||
|
||||
tag_len = T0_POP();
|
||||
cipher_key_len = T0_POP();
|
||||
prf_id = T0_POP();
|
||||
is_client = T0_POP();
|
||||
br_ssl_engine_switch_ccm_in(ENG, is_client, prf_id,
|
||||
ENG->iaes_ctrcbc, cipher_key_len, tag_len);
|
||||
|
||||
}
|
||||
break;
|
||||
case 70: {
|
||||
/* switch-aesccm-out */
|
||||
|
||||
int is_client, prf_id;
|
||||
unsigned cipher_key_len, tag_len;
|
||||
|
||||
tag_len = T0_POP();
|
||||
cipher_key_len = T0_POP();
|
||||
prf_id = T0_POP();
|
||||
is_client = T0_POP();
|
||||
br_ssl_engine_switch_ccm_out(ENG, is_client, prf_id,
|
||||
ENG->iaes_ctrcbc, cipher_key_len, tag_len);
|
||||
|
||||
}
|
||||
break;
|
||||
case 71: {
|
||||
/* switch-aesgcm-in */
|
||||
|
||||
int is_client, prf_id;
|
||||
|
|
@ -1647,7 +1684,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 70: {
|
||||
case 72: {
|
||||
/* switch-aesgcm-out */
|
||||
|
||||
int is_client, prf_id;
|
||||
|
|
@ -1661,7 +1698,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 71: {
|
||||
case 73: {
|
||||
/* switch-cbc-in */
|
||||
|
||||
int is_client, prf_id, mac_id, aes;
|
||||
|
|
@ -1677,7 +1714,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 72: {
|
||||
case 74: {
|
||||
/* switch-cbc-out */
|
||||
|
||||
int is_client, prf_id, mac_id, aes;
|
||||
|
|
@ -1693,7 +1730,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 73: {
|
||||
case 75: {
|
||||
/* switch-chapol-in */
|
||||
|
||||
int is_client, prf_id;
|
||||
|
|
@ -1704,7 +1741,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 74: {
|
||||
case 76: {
|
||||
/* switch-chapol-out */
|
||||
|
||||
int is_client, prf_id;
|
||||
|
|
@ -1715,7 +1752,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 75: {
|
||||
case 77: {
|
||||
/* test-protocol-name */
|
||||
|
||||
size_t len = T0_POP();
|
||||
|
|
@ -1734,7 +1771,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 76: {
|
||||
case 78: {
|
||||
/* total-chain-length */
|
||||
|
||||
size_t u;
|
||||
|
|
@ -1748,7 +1785,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 77: {
|
||||
case 79: {
|
||||
/* u>> */
|
||||
|
||||
int c = (int)T0_POPi();
|
||||
|
|
@ -1757,7 +1794,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 78: {
|
||||
case 80: {
|
||||
/* verify-SKE-sig */
|
||||
|
||||
size_t sig_len = T0_POP();
|
||||
|
|
@ -1768,7 +1805,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 79: {
|
||||
case 81: {
|
||||
/* write-blob-chunk */
|
||||
|
||||
size_t clen = ENG->hlen_out;
|
||||
|
|
@ -1792,7 +1829,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 80: {
|
||||
case 82: {
|
||||
/* write8-native */
|
||||
|
||||
unsigned char x;
|
||||
|
|
@ -1811,7 +1848,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 81: {
|
||||
case 83: {
|
||||
/* x509-append */
|
||||
|
||||
const br_x509_class *xc;
|
||||
|
|
@ -1823,7 +1860,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 82: {
|
||||
case 84: {
|
||||
/* x509-end-cert */
|
||||
|
||||
const br_x509_class *xc;
|
||||
|
|
@ -1833,7 +1870,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 83: {
|
||||
case 85: {
|
||||
/* x509-end-chain */
|
||||
|
||||
const br_x509_class *xc;
|
||||
|
|
@ -1843,7 +1880,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 84: {
|
||||
case 86: {
|
||||
/* x509-start-cert */
|
||||
|
||||
const br_x509_class *xc;
|
||||
|
|
@ -1853,7 +1890,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 85: {
|
||||
case 87: {
|
||||
/* x509-start-chain */
|
||||
|
||||
const br_x509_class *xc;
|
||||
|
|
|
|||
|
|
@ -763,6 +763,10 @@ cc: mkrand ( addr len -- ) {
|
|||
\ 3 AES-128/GCM
|
||||
\ 4 AES-256/GCM
|
||||
\ 5 ChaCha20/Poly1305
|
||||
\ 6 AES-128/CCM
|
||||
\ 7 AES-256/CCM
|
||||
\ 8 AES-128/CCM8
|
||||
\ 9 AES-256/CCM8
|
||||
\ -- MAC algorithm:
|
||||
\ 0 none (for suites with AEAD encryption)
|
||||
\ 2 HMAC/SHA-1
|
||||
|
|
@ -817,6 +821,15 @@ hexb| C030 1405 | \ TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
|
|||
hexb| C031 3304 | \ TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
|
||||
hexb| C032 3405 | \ TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
|
||||
|
||||
hexb| C09C 0604 | \ TLS_RSA_WITH_AES_128_CCM
|
||||
hexb| C09D 0704 | \ TLS_RSA_WITH_AES_256_CCM
|
||||
hexb| C0A0 0804 | \ TLS_RSA_WITH_AES_128_CCM_8
|
||||
hexb| C0A1 0904 | \ TLS_RSA_WITH_AES_256_CCM_8
|
||||
hexb| C0AC 2604 | \ TLS_ECDHE_ECDSA_WITH_AES_128_CCM
|
||||
hexb| C0AD 2704 | \ TLS_ECDHE_ECDSA_WITH_AES_256_CCM
|
||||
hexb| C0AE 2804 | \ TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8
|
||||
hexb| C0AF 2904 | \ TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8
|
||||
|
||||
hexb| CCA8 1504 | \ TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
|
||||
hexb| CCA9 2504 | \ TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
|
||||
|
||||
|
|
@ -956,7 +969,31 @@ hexb| 0000 | \ List terminator.
|
|||
then
|
||||
endof
|
||||
|
||||
ERR_BAD_PARAM fail
|
||||
\ Now we only have AES/CCM suites (6 to 9). Since the
|
||||
\ input is between 0 and 15, and we checked values 0 to 5,
|
||||
\ we only need to reject values larger than 9.
|
||||
dup 9 > if
|
||||
ERR_BAD_PARAM fail
|
||||
then
|
||||
|
||||
\ Stack: is_client prf_id mac_id cipher_id
|
||||
\ We want to remove the mac_id (it is zero for CCM suites)
|
||||
\ and replace the cipher_id with the key and tag lengths.
|
||||
\ The following table applies:
|
||||
\ id key length tag length
|
||||
\ 6 16 16
|
||||
\ 7 32 16
|
||||
\ 8 16 8
|
||||
\ 9 32 8
|
||||
swap drop
|
||||
dup 1 and 4 << 16 + swap
|
||||
8 and 16 swap -
|
||||
for-input if
|
||||
switch-aesccm-in
|
||||
else
|
||||
switch-aesccm-out
|
||||
then
|
||||
ret
|
||||
endcase
|
||||
;
|
||||
|
||||
|
|
@ -1024,6 +1061,30 @@ cc: switch-chapol-in ( is_client prf_id -- ) {
|
|||
br_ssl_engine_switch_chapol_in(ENG, is_client, prf_id);
|
||||
}
|
||||
|
||||
cc: switch-aesccm-out ( is_client prf_id cipher_key_len tag_len -- ) {
|
||||
int is_client, prf_id;
|
||||
unsigned cipher_key_len, tag_len;
|
||||
|
||||
tag_len = T0_POP();
|
||||
cipher_key_len = T0_POP();
|
||||
prf_id = T0_POP();
|
||||
is_client = T0_POP();
|
||||
br_ssl_engine_switch_ccm_out(ENG, is_client, prf_id,
|
||||
ENG->iaes_ctrcbc, cipher_key_len, tag_len);
|
||||
}
|
||||
|
||||
cc: switch-aesccm-in ( is_client prf_id cipher_key_len tag_len -- ) {
|
||||
int is_client, prf_id;
|
||||
unsigned cipher_key_len, tag_len;
|
||||
|
||||
tag_len = T0_POP();
|
||||
cipher_key_len = T0_POP();
|
||||
prf_id = T0_POP();
|
||||
is_client = T0_POP();
|
||||
br_ssl_engine_switch_ccm_in(ENG, is_client, prf_id,
|
||||
ENG->iaes_ctrcbc, cipher_key_len, tag_len);
|
||||
}
|
||||
|
||||
\ Write Finished message.
|
||||
: write-Finished ( from_client -- )
|
||||
compute-Finished
|
||||
|
|
|
|||
|
|
@ -457,8 +457,11 @@ static const unsigned char t0_datablock[] = {
|
|||
0x44, 0xC0, 0x28, 0x12, 0x55, 0xC0, 0x29, 0x31, 0x44, 0xC0, 0x2A, 0x32,
|
||||
0x55, 0xC0, 0x2B, 0x23, 0x04, 0xC0, 0x2C, 0x24, 0x05, 0xC0, 0x2D, 0x43,
|
||||
0x04, 0xC0, 0x2E, 0x44, 0x05, 0xC0, 0x2F, 0x13, 0x04, 0xC0, 0x30, 0x14,
|
||||
0x05, 0xC0, 0x31, 0x33, 0x04, 0xC0, 0x32, 0x34, 0x05, 0xCC, 0xA8, 0x15,
|
||||
0x04, 0xCC, 0xA9, 0x25, 0x04, 0x00, 0x00
|
||||
0x05, 0xC0, 0x31, 0x33, 0x04, 0xC0, 0x32, 0x34, 0x05, 0xC0, 0x9C, 0x06,
|
||||
0x04, 0xC0, 0x9D, 0x07, 0x04, 0xC0, 0xA0, 0x08, 0x04, 0xC0, 0xA1, 0x09,
|
||||
0x04, 0xC0, 0xAC, 0x26, 0x04, 0xC0, 0xAD, 0x27, 0x04, 0xC0, 0xAE, 0x28,
|
||||
0x04, 0xC0, 0xAF, 0x29, 0x04, 0xCC, 0xA8, 0x15, 0x04, 0xCC, 0xA9, 0x25,
|
||||
0x04, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const unsigned char t0_codeblock[] = {
|
||||
|
|
@ -498,7 +501,7 @@ static const unsigned char t0_codeblock[] = {
|
|||
0x00, 0x01, T0_INT2(offsetof(br_ssl_engine_context, ecdhe_point_len)),
|
||||
0x00, 0x00, 0x01, T0_INT2(offsetof(br_ssl_engine_context, flags)),
|
||||
0x00, 0x00, 0x01, T0_INT2(offsetof(br_ssl_server_context, hashes)),
|
||||
0x00, 0x00, 0x79, 0x01,
|
||||
0x00, 0x00, 0x7B, 0x01,
|
||||
T0_INT2(BR_MAX_CIPHER_SUITES * sizeof(br_suite_translated)), 0x00,
|
||||
0x00, 0x01, T0_INT2(offsetof(br_ssl_engine_context, log_max_frag_len)),
|
||||
0x00, 0x00, 0x01, T0_INT2(offsetof(br_ssl_engine_context, pad)), 0x00,
|
||||
|
|
@ -532,256 +535,259 @@ static const unsigned char t0_codeblock[] = {
|
|||
T0_INT2(offsetof(br_ssl_engine_context, version_max)), 0x00, 0x00,
|
||||
0x01, T0_INT2(offsetof(br_ssl_engine_context, version_min)), 0x00,
|
||||
0x00, 0x01, T0_INT2(offsetof(br_ssl_engine_context, version_out)),
|
||||
0x00, 0x00, 0x09, 0x2A, 0x5B, 0x06, 0x02, 0x68, 0x2B, 0x00, 0x00, 0x01,
|
||||
0x01, 0x00, 0x01, 0x03, 0x00, 0x99, 0x2A, 0x61, 0x47, 0x9D, 0x2A, 0x05,
|
||||
0x04, 0x63, 0x01, 0x00, 0x00, 0x02, 0x00, 0x0F, 0x06, 0x02, 0x9D, 0x00,
|
||||
0x61, 0x04, 0x6B, 0x00, 0x06, 0x02, 0x68, 0x2B, 0x00, 0x00, 0x2A, 0x89,
|
||||
0x47, 0x05, 0x03, 0x01, 0x0C, 0x08, 0x47, 0x76, 0x2E, 0xA6, 0x1C, 0x83,
|
||||
0x01, 0x0C, 0x33, 0x00, 0x00, 0x2A, 0x22, 0x01, 0x08, 0x0C, 0x47, 0x5F,
|
||||
0x22, 0x08, 0x00, 0x01, 0x03, 0x00, 0x75, 0x30, 0x02, 0x00, 0x38, 0x13,
|
||||
0x01, 0x01, 0x0C, 0x75, 0x42, 0x2C, 0x19, 0x38, 0x06, 0x07, 0x02, 0x00,
|
||||
0xCE, 0x03, 0x00, 0x04, 0x75, 0x01, 0x00, 0xC5, 0x02, 0x00, 0x2A, 0x19,
|
||||
0x13, 0x06, 0x02, 0x6F, 0x2B, 0xCE, 0x04, 0x76, 0x00, 0x01, 0x00, 0x75,
|
||||
0x42, 0x01, 0x16, 0x87, 0x42, 0x01, 0x00, 0x8A, 0x40, 0x36, 0xAF, 0x35,
|
||||
0x06, 0x02, 0x71, 0x2B, 0x06, 0x0A, 0xD5, 0x01, 0x00, 0xD1, 0x01, 0x00,
|
||||
0xAB, 0x04, 0x80, 0x46, 0xD5, 0xD2, 0x29, 0xD7, 0x4E, 0x06, 0x01, 0xD3,
|
||||
0xD6, 0x2C, 0x4E, 0x06, 0x31, 0x01, 0x00, 0xAC, 0x2A, 0x5B, 0x06, 0x0F,
|
||||
0x01, 0x02, 0xA2, 0x05, 0x02, 0x37, 0x2B, 0x29, 0xB0, 0xAE, 0x2A, 0xC7,
|
||||
0x29, 0x04, 0x19, 0x2A, 0x5D, 0x06, 0x0B, 0x29, 0x01, 0x02, 0xA2, 0x05,
|
||||
0x02, 0x6E, 0x2B, 0xB0, 0x04, 0x0A, 0xB2, 0x2A, 0x05, 0x04, 0x29, 0xA9,
|
||||
0x04, 0x02, 0xB1, 0xAD, 0x04, 0x01, 0xB0, 0x01, 0x00, 0xAB, 0x01, 0x00,
|
||||
0xD1, 0x3E, 0x01, 0x01, 0x75, 0x42, 0x01, 0x17, 0x87, 0x42, 0x00, 0x00,
|
||||
0x3A, 0x3A, 0x00, 0x01, 0x03, 0x00, 0x2C, 0x19, 0x38, 0x06, 0x04, 0xCD,
|
||||
0x29, 0x04, 0x78, 0x01, 0x02, 0x02, 0x00, 0xC4, 0x19, 0x38, 0x06, 0x04,
|
||||
0xCD, 0x29, 0x04, 0x78, 0x02, 0x00, 0x01, 0x84, 0x00, 0x08, 0x2B, 0x00,
|
||||
0x00, 0x7F, 0x2F, 0x47, 0x12, 0x01, 0x01, 0x13, 0x37, 0x00, 0x00, 0x2A,
|
||||
0x05, 0x04, 0x29, 0x01, 0x7F, 0x00, 0x01, 0x00, 0xA0, 0x12, 0x01, 0x01,
|
||||
0x13, 0x5D, 0x06, 0x03, 0x5F, 0x04, 0x75, 0x47, 0x29, 0x00, 0x00, 0x01,
|
||||
0x7F, 0x9F, 0xCD, 0x2A, 0x01, 0x07, 0x13, 0x01, 0x00, 0x3A, 0x0F, 0x06,
|
||||
0x0D, 0x29, 0x01, 0x10, 0x13, 0x06, 0x05, 0x01, 0x00, 0x75, 0x42, 0xC3,
|
||||
0x04, 0x33, 0x01, 0x01, 0x3A, 0x0F, 0x06, 0x2A, 0x29, 0x29, 0x88, 0x30,
|
||||
0x01, 0x01, 0x0F, 0x01, 0x01, 0xA2, 0x39, 0x06, 0x18, 0xC6, 0x2C, 0x19,
|
||||
0x38, 0x06, 0x04, 0xCD, 0x29, 0x04, 0x78, 0x01, 0x80, 0x64, 0xC5, 0x01,
|
||||
0x01, 0x75, 0x42, 0x01, 0x17, 0x87, 0x42, 0x04, 0x03, 0x01, 0x00, 0x9F,
|
||||
0x04, 0x03, 0x71, 0x2B, 0x29, 0x04, 0xFF, 0x32, 0x01, 0x2A, 0x03, 0x00,
|
||||
0x09, 0x2A, 0x5B, 0x06, 0x02, 0x68, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x9A,
|
||||
0x01, 0x0F, 0x13, 0x00, 0x00, 0x74, 0x30, 0x01, 0x00, 0x3A, 0x0F, 0x06,
|
||||
0x10, 0x29, 0x2A, 0x01, 0x01, 0x0E, 0x06, 0x03, 0x29, 0x01, 0x02, 0x74,
|
||||
0x00, 0x00, 0x09, 0x2A, 0x5D, 0x06, 0x02, 0x6A, 0x2B, 0x00, 0x00, 0x01,
|
||||
0x01, 0x00, 0x01, 0x03, 0x00, 0x9B, 0x2A, 0x63, 0x47, 0x9F, 0x2A, 0x05,
|
||||
0x04, 0x65, 0x01, 0x00, 0x00, 0x02, 0x00, 0x0F, 0x06, 0x02, 0x9F, 0x00,
|
||||
0x63, 0x04, 0x6B, 0x00, 0x06, 0x02, 0x6A, 0x2B, 0x00, 0x00, 0x2A, 0x8B,
|
||||
0x47, 0x05, 0x03, 0x01, 0x0C, 0x08, 0x47, 0x78, 0x2E, 0xA8, 0x1C, 0x85,
|
||||
0x01, 0x0C, 0x33, 0x00, 0x00, 0x2A, 0x22, 0x01, 0x08, 0x0C, 0x47, 0x61,
|
||||
0x22, 0x08, 0x00, 0x01, 0x03, 0x00, 0x77, 0x30, 0x02, 0x00, 0x38, 0x13,
|
||||
0x01, 0x01, 0x0C, 0x77, 0x42, 0x2C, 0x19, 0x38, 0x06, 0x07, 0x02, 0x00,
|
||||
0xD0, 0x03, 0x00, 0x04, 0x75, 0x01, 0x00, 0xC7, 0x02, 0x00, 0x2A, 0x19,
|
||||
0x13, 0x06, 0x02, 0x71, 0x2B, 0xD0, 0x04, 0x76, 0x00, 0x01, 0x00, 0x77,
|
||||
0x42, 0x01, 0x16, 0x89, 0x42, 0x01, 0x00, 0x8C, 0x40, 0x36, 0xB1, 0x35,
|
||||
0x06, 0x02, 0x73, 0x2B, 0x06, 0x0A, 0xD7, 0x01, 0x00, 0xD3, 0x01, 0x00,
|
||||
0xAD, 0x04, 0x80, 0x46, 0xD7, 0xD4, 0x29, 0xD9, 0x50, 0x06, 0x01, 0xD5,
|
||||
0xD8, 0x2C, 0x50, 0x06, 0x31, 0x01, 0x00, 0xAE, 0x2A, 0x5D, 0x06, 0x0F,
|
||||
0x01, 0x02, 0xA4, 0x05, 0x02, 0x37, 0x2B, 0x29, 0xB2, 0xB0, 0x2A, 0xC9,
|
||||
0x29, 0x04, 0x19, 0x2A, 0x5F, 0x06, 0x0B, 0x29, 0x01, 0x02, 0xA4, 0x05,
|
||||
0x02, 0x70, 0x2B, 0xB2, 0x04, 0x0A, 0xB4, 0x2A, 0x05, 0x04, 0x29, 0xAB,
|
||||
0x04, 0x02, 0xB3, 0xAF, 0x04, 0x01, 0xB2, 0x01, 0x00, 0xAD, 0x01, 0x00,
|
||||
0xD3, 0x3E, 0x01, 0x01, 0x77, 0x42, 0x01, 0x17, 0x89, 0x42, 0x00, 0x00,
|
||||
0x3A, 0x3A, 0x00, 0x01, 0x03, 0x00, 0x2C, 0x19, 0x38, 0x06, 0x04, 0xCF,
|
||||
0x29, 0x04, 0x78, 0x01, 0x02, 0x02, 0x00, 0xC6, 0x19, 0x38, 0x06, 0x04,
|
||||
0xCF, 0x29, 0x04, 0x78, 0x02, 0x00, 0x01, 0x84, 0x00, 0x08, 0x2B, 0x00,
|
||||
0x00, 0x81, 0x2F, 0x47, 0x12, 0x01, 0x01, 0x13, 0x37, 0x00, 0x00, 0x2A,
|
||||
0x05, 0x04, 0x29, 0x01, 0x7F, 0x00, 0x01, 0x00, 0xA2, 0x12, 0x01, 0x01,
|
||||
0x13, 0x5F, 0x06, 0x03, 0x61, 0x04, 0x75, 0x47, 0x29, 0x00, 0x00, 0x01,
|
||||
0x7F, 0xA1, 0xCF, 0x2A, 0x01, 0x07, 0x13, 0x01, 0x00, 0x3A, 0x0F, 0x06,
|
||||
0x0D, 0x29, 0x01, 0x10, 0x13, 0x06, 0x05, 0x01, 0x00, 0x77, 0x42, 0xC5,
|
||||
0x04, 0x33, 0x01, 0x01, 0x3A, 0x0F, 0x06, 0x2A, 0x29, 0x29, 0x8A, 0x30,
|
||||
0x01, 0x01, 0x0F, 0x01, 0x01, 0xA4, 0x39, 0x06, 0x18, 0xC8, 0x2C, 0x19,
|
||||
0x38, 0x06, 0x04, 0xCF, 0x29, 0x04, 0x78, 0x01, 0x80, 0x64, 0xC7, 0x01,
|
||||
0x01, 0x77, 0x42, 0x01, 0x17, 0x89, 0x42, 0x04, 0x03, 0x01, 0x00, 0xA1,
|
||||
0x04, 0x03, 0x73, 0x2B, 0x29, 0x04, 0xFF, 0x32, 0x01, 0x2A, 0x03, 0x00,
|
||||
0x09, 0x2A, 0x5D, 0x06, 0x02, 0x6A, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x9C,
|
||||
0x01, 0x0F, 0x13, 0x00, 0x00, 0x76, 0x30, 0x01, 0x00, 0x3A, 0x0F, 0x06,
|
||||
0x10, 0x29, 0x2A, 0x01, 0x01, 0x0E, 0x06, 0x03, 0x29, 0x01, 0x02, 0x76,
|
||||
0x42, 0x01, 0x00, 0x04, 0x21, 0x01, 0x01, 0x3A, 0x0F, 0x06, 0x14, 0x29,
|
||||
0x01, 0x00, 0x74, 0x42, 0x2A, 0x01, 0x80, 0x64, 0x0F, 0x06, 0x05, 0x01,
|
||||
0x82, 0x00, 0x08, 0x2B, 0x5D, 0x04, 0x07, 0x29, 0x01, 0x82, 0x00, 0x08,
|
||||
0x2B, 0x29, 0x00, 0x00, 0x01, 0x00, 0x31, 0x06, 0x05, 0x3D, 0xA7, 0x39,
|
||||
0x04, 0x78, 0x2A, 0x06, 0x04, 0x01, 0x01, 0x8F, 0x42, 0x00, 0x00, 0x01,
|
||||
0x1F, 0x13, 0x01, 0x12, 0x0F, 0x05, 0x02, 0x72, 0x2B, 0x76, 0x2E, 0x2A,
|
||||
0xC9, 0x05, 0x02, 0x71, 0x2B, 0xA6, 0x28, 0x00, 0x02, 0x85, 0x2E, 0x05,
|
||||
0x02, 0xBA, 0x00, 0xBE, 0xA5, 0xBE, 0xA5, 0x01, 0x7E, 0x03, 0x00, 0x2A,
|
||||
0x06, 0x17, 0xC0, 0x2A, 0x03, 0x01, 0x83, 0x47, 0xB4, 0x02, 0x01, 0x4F,
|
||||
0x2A, 0x02, 0x00, 0x51, 0x06, 0x04, 0x03, 0x00, 0x04, 0x01, 0x29, 0x04,
|
||||
0x66, 0x9B, 0x9B, 0x02, 0x00, 0x5F, 0x8A, 0x40, 0x00, 0x00, 0x31, 0x06,
|
||||
0x0B, 0x86, 0x30, 0x01, 0x14, 0x0E, 0x06, 0x02, 0x71, 0x2B, 0x04, 0x11,
|
||||
0xCD, 0x01, 0x07, 0x13, 0x2A, 0x01, 0x02, 0x0E, 0x06, 0x06, 0x06, 0x02,
|
||||
0x71, 0x2B, 0x04, 0x70, 0x29, 0xC1, 0x01, 0x01, 0x0E, 0x35, 0x39, 0x06,
|
||||
0x02, 0x64, 0x2B, 0x2A, 0x01, 0x01, 0xC8, 0x38, 0xB3, 0x00, 0x01, 0xB8,
|
||||
0x01, 0x0B, 0x0F, 0x05, 0x02, 0x71, 0x2B, 0x2A, 0x01, 0x03, 0x0F, 0x06,
|
||||
0x08, 0xBF, 0x06, 0x02, 0x68, 0x2B, 0x47, 0x29, 0x00, 0x47, 0x5A, 0xBF,
|
||||
0xA5, 0x2A, 0x06, 0x23, 0xBF, 0xA5, 0x2A, 0x59, 0x2A, 0x06, 0x18, 0x2A,
|
||||
0x01, 0x00, 0x76, 0x42, 0x2A, 0x01, 0x80, 0x64, 0x0F, 0x06, 0x05, 0x01,
|
||||
0x82, 0x00, 0x08, 0x2B, 0x5F, 0x04, 0x07, 0x29, 0x01, 0x82, 0x00, 0x08,
|
||||
0x2B, 0x29, 0x00, 0x00, 0x01, 0x00, 0x31, 0x06, 0x05, 0x3D, 0xA9, 0x39,
|
||||
0x04, 0x78, 0x2A, 0x06, 0x04, 0x01, 0x01, 0x91, 0x42, 0x00, 0x00, 0x01,
|
||||
0x1F, 0x13, 0x01, 0x12, 0x0F, 0x05, 0x02, 0x74, 0x2B, 0x78, 0x2E, 0x2A,
|
||||
0xCB, 0x05, 0x02, 0x73, 0x2B, 0xA8, 0x28, 0x00, 0x02, 0x87, 0x2E, 0x05,
|
||||
0x02, 0xBC, 0x00, 0xC0, 0xA7, 0xC0, 0xA7, 0x01, 0x7E, 0x03, 0x00, 0x2A,
|
||||
0x06, 0x17, 0xC2, 0x2A, 0x03, 0x01, 0x85, 0x47, 0xB6, 0x02, 0x01, 0x51,
|
||||
0x2A, 0x02, 0x00, 0x53, 0x06, 0x04, 0x03, 0x00, 0x04, 0x01, 0x29, 0x04,
|
||||
0x66, 0x9D, 0x9D, 0x02, 0x00, 0x61, 0x8C, 0x40, 0x00, 0x00, 0x31, 0x06,
|
||||
0x0B, 0x88, 0x30, 0x01, 0x14, 0x0E, 0x06, 0x02, 0x73, 0x2B, 0x04, 0x11,
|
||||
0xCF, 0x01, 0x07, 0x13, 0x2A, 0x01, 0x02, 0x0E, 0x06, 0x06, 0x06, 0x02,
|
||||
0x73, 0x2B, 0x04, 0x70, 0x29, 0xC3, 0x01, 0x01, 0x0E, 0x35, 0x39, 0x06,
|
||||
0x02, 0x66, 0x2B, 0x2A, 0x01, 0x01, 0xCA, 0x38, 0xB5, 0x00, 0x01, 0xBA,
|
||||
0x01, 0x0B, 0x0F, 0x05, 0x02, 0x73, 0x2B, 0x2A, 0x01, 0x03, 0x0F, 0x06,
|
||||
0x08, 0xC1, 0x06, 0x02, 0x6A, 0x2B, 0x47, 0x29, 0x00, 0x47, 0x5C, 0xC1,
|
||||
0xA7, 0x2A, 0x06, 0x23, 0xC1, 0xA7, 0x2A, 0x5B, 0x2A, 0x06, 0x18, 0x2A,
|
||||
0x01, 0x82, 0x00, 0x10, 0x06, 0x05, 0x01, 0x82, 0x00, 0x04, 0x01, 0x2A,
|
||||
0x03, 0x00, 0x83, 0x02, 0x00, 0xB4, 0x02, 0x00, 0x56, 0x04, 0x65, 0x9B,
|
||||
0x57, 0x04, 0x5A, 0x9B, 0x9B, 0x58, 0x2A, 0x06, 0x02, 0x37, 0x00, 0x29,
|
||||
0x2D, 0x00, 0x02, 0x2A, 0x01, 0x20, 0x13, 0x05, 0x02, 0x72, 0x2B, 0x01,
|
||||
0x0F, 0x13, 0x03, 0x00, 0xAE, 0x93, 0x2E, 0x01, 0x86, 0x03, 0x11, 0x06,
|
||||
0x23, 0xBE, 0x2A, 0x01, 0x81, 0x7F, 0x13, 0x5F, 0x01, 0x01, 0x12, 0x02,
|
||||
0x00, 0x0F, 0x05, 0x02, 0x6A, 0x2B, 0x01, 0x08, 0x12, 0x2A, 0x01, 0x02,
|
||||
0x0B, 0x3A, 0x01, 0x06, 0x10, 0x39, 0x06, 0x02, 0x6C, 0x2B, 0x04, 0x0D,
|
||||
0x03, 0x00, 0x85, 0x02, 0x00, 0xB6, 0x02, 0x00, 0x58, 0x04, 0x65, 0x9D,
|
||||
0x59, 0x04, 0x5A, 0x9D, 0x9D, 0x5A, 0x2A, 0x06, 0x02, 0x37, 0x00, 0x29,
|
||||
0x2D, 0x00, 0x02, 0x2A, 0x01, 0x20, 0x13, 0x05, 0x02, 0x74, 0x2B, 0x01,
|
||||
0x0F, 0x13, 0x03, 0x00, 0xB0, 0x95, 0x2E, 0x01, 0x86, 0x03, 0x11, 0x06,
|
||||
0x23, 0xC0, 0x2A, 0x01, 0x81, 0x7F, 0x13, 0x61, 0x01, 0x01, 0x12, 0x02,
|
||||
0x00, 0x0F, 0x05, 0x02, 0x6C, 0x2B, 0x01, 0x08, 0x12, 0x2A, 0x01, 0x02,
|
||||
0x0B, 0x3A, 0x01, 0x06, 0x10, 0x39, 0x06, 0x02, 0x6E, 0x2B, 0x04, 0x0D,
|
||||
0x02, 0x00, 0x01, 0x01, 0x0F, 0x06, 0x04, 0x01, 0x00, 0x04, 0x02, 0x01,
|
||||
0x02, 0x20, 0x05, 0x02, 0x6C, 0x2B, 0xBE, 0x2A, 0x03, 0x01, 0x2A, 0x01,
|
||||
0x84, 0x00, 0x10, 0x06, 0x02, 0x6D, 0x2B, 0x83, 0x47, 0xB4, 0x02, 0x01,
|
||||
0x53, 0x2A, 0x06, 0x01, 0x2B, 0x29, 0x9B, 0x00, 0x00, 0x1D, 0xB8, 0x01,
|
||||
0x0F, 0x0F, 0x05, 0x02, 0x71, 0x2B, 0x00, 0x0A, 0xB8, 0x01, 0x01, 0x0F,
|
||||
0x05, 0x02, 0x71, 0x2B, 0xBE, 0x2A, 0x03, 0x00, 0x77, 0x40, 0x78, 0x01,
|
||||
0x20, 0xB4, 0xC0, 0x2A, 0x01, 0x20, 0x10, 0x06, 0x02, 0x70, 0x2B, 0x2A,
|
||||
0x8E, 0x42, 0x8D, 0x47, 0xB4, 0x1A, 0x03, 0x01, 0xBE, 0xA5, 0x01, 0x00,
|
||||
0x03, 0x02, 0x01, 0x00, 0x03, 0x03, 0x81, 0xA0, 0x17, 0x3A, 0x08, 0x03,
|
||||
0x04, 0x03, 0x05, 0x2A, 0x06, 0x80, 0x6D, 0xBE, 0x2A, 0x03, 0x06, 0x02,
|
||||
0x01, 0x06, 0x0A, 0x2A, 0x76, 0x2E, 0x0F, 0x06, 0x04, 0x01, 0x7F, 0x03,
|
||||
0x03, 0x2A, 0x01, 0x81, 0x7F, 0x0F, 0x06, 0x0A, 0x88, 0x30, 0x06, 0x02,
|
||||
0x69, 0x2B, 0x01, 0x7F, 0x03, 0x02, 0x2A, 0x01, 0x81, 0xAC, 0x00, 0x0F,
|
||||
0x06, 0x11, 0x02, 0x00, 0x96, 0x2E, 0x11, 0x02, 0x00, 0x95, 0x2E, 0x0B,
|
||||
0x13, 0x06, 0x04, 0x01, 0x7F, 0x03, 0x00, 0xC2, 0x2A, 0x5B, 0x06, 0x03,
|
||||
0x29, 0x04, 0x26, 0x01, 0x00, 0xA2, 0x06, 0x0B, 0x01, 0x02, 0x0C, 0x79,
|
||||
0x02, 0x20, 0x05, 0x02, 0x6E, 0x2B, 0xC0, 0x2A, 0x03, 0x01, 0x2A, 0x01,
|
||||
0x84, 0x00, 0x10, 0x06, 0x02, 0x6F, 0x2B, 0x85, 0x47, 0xB6, 0x02, 0x01,
|
||||
0x55, 0x2A, 0x06, 0x01, 0x2B, 0x29, 0x9D, 0x00, 0x00, 0x1D, 0xBA, 0x01,
|
||||
0x0F, 0x0F, 0x05, 0x02, 0x73, 0x2B, 0x00, 0x0A, 0xBA, 0x01, 0x01, 0x0F,
|
||||
0x05, 0x02, 0x73, 0x2B, 0xC0, 0x2A, 0x03, 0x00, 0x79, 0x40, 0x7A, 0x01,
|
||||
0x20, 0xB6, 0xC2, 0x2A, 0x01, 0x20, 0x10, 0x06, 0x02, 0x72, 0x2B, 0x2A,
|
||||
0x90, 0x42, 0x8F, 0x47, 0xB6, 0x1A, 0x03, 0x01, 0xC0, 0xA7, 0x01, 0x00,
|
||||
0x03, 0x02, 0x01, 0x00, 0x03, 0x03, 0x83, 0xA2, 0x17, 0x3A, 0x08, 0x03,
|
||||
0x04, 0x03, 0x05, 0x2A, 0x06, 0x80, 0x6D, 0xC0, 0x2A, 0x03, 0x06, 0x02,
|
||||
0x01, 0x06, 0x0A, 0x2A, 0x78, 0x2E, 0x0F, 0x06, 0x04, 0x01, 0x7F, 0x03,
|
||||
0x03, 0x2A, 0x01, 0x81, 0x7F, 0x0F, 0x06, 0x0A, 0x8A, 0x30, 0x06, 0x02,
|
||||
0x6B, 0x2B, 0x01, 0x7F, 0x03, 0x02, 0x2A, 0x01, 0x81, 0xAC, 0x00, 0x0F,
|
||||
0x06, 0x11, 0x02, 0x00, 0x98, 0x2E, 0x11, 0x02, 0x00, 0x97, 0x2E, 0x0B,
|
||||
0x13, 0x06, 0x04, 0x01, 0x7F, 0x03, 0x00, 0xC4, 0x2A, 0x5D, 0x06, 0x03,
|
||||
0x29, 0x04, 0x26, 0x01, 0x00, 0xA4, 0x06, 0x0B, 0x01, 0x02, 0x0C, 0x7B,
|
||||
0x08, 0x02, 0x06, 0x47, 0x40, 0x04, 0x16, 0x29, 0x02, 0x05, 0x02, 0x04,
|
||||
0x11, 0x06, 0x02, 0x67, 0x2B, 0x02, 0x06, 0x02, 0x05, 0x40, 0x02, 0x05,
|
||||
0x11, 0x06, 0x02, 0x69, 0x2B, 0x02, 0x06, 0x02, 0x05, 0x40, 0x02, 0x05,
|
||||
0x01, 0x04, 0x08, 0x03, 0x05, 0x04, 0xFF, 0x0F, 0x29, 0x01, 0x00, 0x03,
|
||||
0x07, 0xC0, 0xA5, 0x2A, 0x06, 0x09, 0xC0, 0x05, 0x04, 0x01, 0x7F, 0x03,
|
||||
0x07, 0x04, 0x74, 0x9B, 0x01, 0x00, 0x8B, 0x42, 0x01, 0x88, 0x04, 0x80,
|
||||
0x41, 0x01, 0x84, 0x80, 0x80, 0x00, 0x7C, 0x41, 0x2A, 0x06, 0x80, 0x4E,
|
||||
0xBE, 0xA5, 0x2A, 0x06, 0x80, 0x47, 0xBE, 0x01, 0x00, 0x3A, 0x0F, 0x06,
|
||||
0x04, 0x29, 0xB7, 0x04, 0x39, 0x01, 0x01, 0x3A, 0x0F, 0x06, 0x04, 0x29,
|
||||
0xB5, 0x04, 0x2F, 0x01, 0x83, 0xFE, 0x01, 0x3A, 0x0F, 0x06, 0x04, 0x29,
|
||||
0xB6, 0x04, 0x23, 0x01, 0x0D, 0x3A, 0x0F, 0x06, 0x04, 0x29, 0xBC, 0x04,
|
||||
0x19, 0x01, 0x0A, 0x3A, 0x0F, 0x06, 0x04, 0x29, 0xBD, 0x04, 0x0F, 0x01,
|
||||
0x10, 0x3A, 0x0F, 0x06, 0x04, 0x29, 0xAA, 0x04, 0x05, 0x29, 0xBA, 0x01,
|
||||
0x00, 0x29, 0x04, 0xFF, 0x35, 0x9B, 0x9B, 0x02, 0x01, 0x02, 0x03, 0x13,
|
||||
0x03, 0x01, 0x02, 0x00, 0x5B, 0x06, 0x08, 0x77, 0x2E, 0x97, 0x40, 0x01,
|
||||
0x80, 0x56, 0xA1, 0x95, 0x2E, 0x2A, 0x02, 0x00, 0x10, 0x06, 0x03, 0x29,
|
||||
0x02, 0x00, 0x2A, 0x01, 0x86, 0x00, 0x0B, 0x06, 0x02, 0x6B, 0x2B, 0x02,
|
||||
0x00, 0x96, 0x2E, 0x0B, 0x06, 0x04, 0x01, 0x80, 0x46, 0xA1, 0x02, 0x01,
|
||||
0x06, 0x10, 0x93, 0x2E, 0x02, 0x00, 0x0D, 0x06, 0x05, 0x29, 0x93, 0x2E,
|
||||
0x04, 0x04, 0x01, 0x00, 0x03, 0x01, 0x2A, 0x93, 0x40, 0x2A, 0x94, 0x40,
|
||||
0x2A, 0x97, 0x40, 0x01, 0x86, 0x03, 0x11, 0x03, 0x08, 0x02, 0x02, 0x06,
|
||||
0x04, 0x01, 0x02, 0x88, 0x42, 0x88, 0x30, 0x05, 0x04, 0x01, 0x01, 0x88,
|
||||
0x42, 0x02, 0x07, 0x05, 0x03, 0x01, 0x28, 0xA1, 0x44, 0x29, 0x01, 0x82,
|
||||
0x01, 0x07, 0x01, 0xFC, 0x80, 0x00, 0x39, 0x80, 0x2F, 0x13, 0x2A, 0x80,
|
||||
0x41, 0x2A, 0x01, 0x81, 0x7F, 0x13, 0x5C, 0x37, 0x47, 0x01, 0x08, 0x12,
|
||||
0x5C, 0x01, 0x02, 0x13, 0x39, 0x01, 0x0C, 0x0C, 0x03, 0x09, 0x7C, 0x2F,
|
||||
0x43, 0x13, 0x2A, 0x7C, 0x41, 0x05, 0x04, 0x01, 0x00, 0x03, 0x09, 0x02,
|
||||
0x01, 0x06, 0x03, 0x01, 0x7F, 0x00, 0x8D, 0x01, 0x20, 0x34, 0x01, 0x20,
|
||||
0x8E, 0x42, 0x79, 0x2A, 0x03, 0x05, 0x2A, 0x02, 0x04, 0x0B, 0x06, 0x80,
|
||||
0x49, 0x2A, 0x2E, 0x2A, 0x9A, 0x2A, 0x01, 0x0C, 0x12, 0x2A, 0x01, 0x01,
|
||||
0x07, 0xC2, 0xA7, 0x2A, 0x06, 0x09, 0xC2, 0x05, 0x04, 0x01, 0x7F, 0x03,
|
||||
0x07, 0x04, 0x74, 0x9D, 0x01, 0x00, 0x8D, 0x42, 0x01, 0x88, 0x04, 0x82,
|
||||
0x41, 0x01, 0x84, 0x80, 0x80, 0x00, 0x7E, 0x41, 0x2A, 0x06, 0x80, 0x4E,
|
||||
0xC0, 0xA7, 0x2A, 0x06, 0x80, 0x47, 0xC0, 0x01, 0x00, 0x3A, 0x0F, 0x06,
|
||||
0x04, 0x29, 0xB9, 0x04, 0x39, 0x01, 0x01, 0x3A, 0x0F, 0x06, 0x04, 0x29,
|
||||
0xB7, 0x04, 0x2F, 0x01, 0x83, 0xFE, 0x01, 0x3A, 0x0F, 0x06, 0x04, 0x29,
|
||||
0xB8, 0x04, 0x23, 0x01, 0x0D, 0x3A, 0x0F, 0x06, 0x04, 0x29, 0xBE, 0x04,
|
||||
0x19, 0x01, 0x0A, 0x3A, 0x0F, 0x06, 0x04, 0x29, 0xBF, 0x04, 0x0F, 0x01,
|
||||
0x10, 0x3A, 0x0F, 0x06, 0x04, 0x29, 0xAC, 0x04, 0x05, 0x29, 0xBC, 0x01,
|
||||
0x00, 0x29, 0x04, 0xFF, 0x35, 0x9D, 0x9D, 0x02, 0x01, 0x02, 0x03, 0x13,
|
||||
0x03, 0x01, 0x02, 0x00, 0x5D, 0x06, 0x08, 0x79, 0x2E, 0x99, 0x40, 0x01,
|
||||
0x80, 0x56, 0xA3, 0x97, 0x2E, 0x2A, 0x02, 0x00, 0x10, 0x06, 0x03, 0x29,
|
||||
0x02, 0x00, 0x2A, 0x01, 0x86, 0x00, 0x0B, 0x06, 0x02, 0x6D, 0x2B, 0x02,
|
||||
0x00, 0x98, 0x2E, 0x0B, 0x06, 0x04, 0x01, 0x80, 0x46, 0xA3, 0x02, 0x01,
|
||||
0x06, 0x10, 0x95, 0x2E, 0x02, 0x00, 0x0D, 0x06, 0x05, 0x29, 0x95, 0x2E,
|
||||
0x04, 0x04, 0x01, 0x00, 0x03, 0x01, 0x2A, 0x95, 0x40, 0x2A, 0x96, 0x40,
|
||||
0x2A, 0x99, 0x40, 0x01, 0x86, 0x03, 0x11, 0x03, 0x08, 0x02, 0x02, 0x06,
|
||||
0x04, 0x01, 0x02, 0x8A, 0x42, 0x8A, 0x30, 0x05, 0x04, 0x01, 0x01, 0x8A,
|
||||
0x42, 0x02, 0x07, 0x05, 0x03, 0x01, 0x28, 0xA3, 0x44, 0x29, 0x01, 0x82,
|
||||
0x01, 0x07, 0x01, 0xFC, 0x80, 0x00, 0x39, 0x82, 0x2F, 0x13, 0x2A, 0x82,
|
||||
0x41, 0x2A, 0x01, 0x81, 0x7F, 0x13, 0x5E, 0x37, 0x47, 0x01, 0x08, 0x12,
|
||||
0x5E, 0x01, 0x02, 0x13, 0x39, 0x01, 0x0C, 0x0C, 0x03, 0x09, 0x7E, 0x2F,
|
||||
0x43, 0x13, 0x2A, 0x7E, 0x41, 0x05, 0x04, 0x01, 0x00, 0x03, 0x09, 0x02,
|
||||
0x01, 0x06, 0x03, 0x01, 0x7F, 0x00, 0x8F, 0x01, 0x20, 0x34, 0x01, 0x20,
|
||||
0x90, 0x42, 0x7B, 0x2A, 0x03, 0x05, 0x2A, 0x02, 0x04, 0x0B, 0x06, 0x80,
|
||||
0x49, 0x2A, 0x2E, 0x2A, 0x9C, 0x2A, 0x01, 0x0C, 0x12, 0x2A, 0x01, 0x01,
|
||||
0x0F, 0x47, 0x01, 0x02, 0x0F, 0x39, 0x06, 0x0A, 0x2A, 0x02, 0x09, 0x13,
|
||||
0x05, 0x04, 0x63, 0x01, 0x00, 0x2A, 0x02, 0x08, 0x05, 0x0E, 0x2A, 0x01,
|
||||
0x81, 0x70, 0x13, 0x01, 0x20, 0x0E, 0x06, 0x04, 0x63, 0x01, 0x00, 0x2A,
|
||||
0x2A, 0x06, 0x10, 0x02, 0x05, 0x61, 0x40, 0x02, 0x05, 0x40, 0x02, 0x05,
|
||||
0x01, 0x04, 0x08, 0x03, 0x05, 0x04, 0x01, 0x63, 0x01, 0x04, 0x08, 0x04,
|
||||
0xFF, 0x30, 0x29, 0x02, 0x05, 0x79, 0x09, 0x01, 0x02, 0x12, 0x2A, 0x05,
|
||||
0x03, 0x01, 0x28, 0xA1, 0x7A, 0x42, 0x8A, 0x2E, 0x01, 0x83, 0xFF, 0x7F,
|
||||
0x0F, 0x06, 0x0D, 0x01, 0x03, 0xA2, 0x06, 0x04, 0x01, 0x80, 0x78, 0xA1,
|
||||
0x01, 0x00, 0x8A, 0x40, 0x18, 0x05, 0x03, 0x01, 0x28, 0xA1, 0x01, 0x00,
|
||||
0x00, 0x00, 0xB2, 0xB1, 0x00, 0x04, 0x76, 0x2E, 0xCC, 0x06, 0x16, 0xBE,
|
||||
0x2A, 0x01, 0x84, 0x00, 0x10, 0x06, 0x02, 0x6D, 0x2B, 0x2A, 0x03, 0x00,
|
||||
0x83, 0x47, 0xB4, 0x02, 0x00, 0x76, 0x2E, 0xA6, 0x27, 0x76, 0x2E, 0x2A,
|
||||
0xCA, 0x47, 0xC9, 0x03, 0x01, 0x03, 0x02, 0x02, 0x01, 0x02, 0x02, 0x39,
|
||||
0x06, 0x14, 0xC0, 0x2A, 0x03, 0x03, 0x83, 0x47, 0xB4, 0x02, 0x03, 0x76,
|
||||
0x2E, 0xA6, 0x02, 0x02, 0x06, 0x03, 0x26, 0x04, 0x01, 0x24, 0x9B, 0x00,
|
||||
0x00, 0xB8, 0x01, 0x10, 0x0F, 0x05, 0x02, 0x71, 0x2B, 0x00, 0x00, 0x9C,
|
||||
0xB8, 0x01, 0x14, 0x0E, 0x06, 0x02, 0x71, 0x2B, 0x83, 0x01, 0x0C, 0x08,
|
||||
0x01, 0x0C, 0xB4, 0x9B, 0x83, 0x2A, 0x01, 0x0C, 0x08, 0x01, 0x0C, 0x32,
|
||||
0x05, 0x02, 0x65, 0x2B, 0x00, 0x02, 0x03, 0x00, 0x03, 0x01, 0x02, 0x00,
|
||||
0x98, 0x02, 0x01, 0x02, 0x00, 0x3C, 0x2A, 0x01, 0x00, 0x0F, 0x06, 0x02,
|
||||
0x63, 0x00, 0xCF, 0x04, 0x74, 0x00, 0xBE, 0x01, 0x01, 0x0E, 0x06, 0x02,
|
||||
0x66, 0x2B, 0xC0, 0x2A, 0x2A, 0x5D, 0x47, 0x01, 0x05, 0x11, 0x39, 0x06,
|
||||
0x02, 0x66, 0x2B, 0x01, 0x08, 0x08, 0x2A, 0x82, 0x30, 0x0B, 0x06, 0x0D,
|
||||
0x2A, 0x01, 0x01, 0x47, 0x0C, 0x3F, 0x2A, 0x82, 0x42, 0x84, 0x42, 0x04,
|
||||
0x01, 0x29, 0x00, 0x00, 0xBE, 0x88, 0x30, 0x01, 0x00, 0x3A, 0x0F, 0x06,
|
||||
0x13, 0x29, 0x01, 0x01, 0x0F, 0x05, 0x02, 0x69, 0x2B, 0xC0, 0x06, 0x02,
|
||||
0x69, 0x2B, 0x01, 0x02, 0x88, 0x42, 0x04, 0x28, 0x01, 0x02, 0x3A, 0x0F,
|
||||
0x06, 0x1F, 0x29, 0x01, 0x0D, 0x0F, 0x05, 0x02, 0x69, 0x2B, 0xC0, 0x01,
|
||||
0x0C, 0x0F, 0x05, 0x02, 0x69, 0x2B, 0x83, 0x01, 0x0C, 0xB4, 0x89, 0x83,
|
||||
0x01, 0x0C, 0x32, 0x05, 0x02, 0x69, 0x2B, 0x04, 0x03, 0x69, 0x2B, 0x29,
|
||||
0x00, 0x00, 0xBE, 0xA5, 0xBE, 0xA5, 0x2A, 0x06, 0x1D, 0xC0, 0x06, 0x03,
|
||||
0xBA, 0x04, 0x15, 0xBE, 0x2A, 0x01, 0x81, 0x7F, 0x0D, 0x06, 0x0C, 0x2A,
|
||||
0x8B, 0x08, 0x01, 0x00, 0x47, 0x42, 0x8B, 0x47, 0xB4, 0x04, 0x01, 0xC7,
|
||||
0x04, 0x60, 0x9B, 0x9B, 0x00, 0x00, 0xB9, 0x2A, 0x5D, 0x06, 0x07, 0x29,
|
||||
0x06, 0x02, 0x67, 0x2B, 0x04, 0x74, 0x00, 0x00, 0xC1, 0x01, 0x03, 0xBF,
|
||||
0x47, 0x29, 0x47, 0x00, 0x00, 0xBE, 0xC7, 0x00, 0x03, 0x01, 0x00, 0x03,
|
||||
0x00, 0xBE, 0xA5, 0x2A, 0x06, 0x80, 0x50, 0xC0, 0x03, 0x01, 0xC0, 0x03,
|
||||
0x05, 0x04, 0x65, 0x01, 0x00, 0x2A, 0x02, 0x08, 0x05, 0x0E, 0x2A, 0x01,
|
||||
0x81, 0x70, 0x13, 0x01, 0x20, 0x0E, 0x06, 0x04, 0x65, 0x01, 0x00, 0x2A,
|
||||
0x2A, 0x06, 0x10, 0x02, 0x05, 0x63, 0x40, 0x02, 0x05, 0x40, 0x02, 0x05,
|
||||
0x01, 0x04, 0x08, 0x03, 0x05, 0x04, 0x01, 0x65, 0x01, 0x04, 0x08, 0x04,
|
||||
0xFF, 0x30, 0x29, 0x02, 0x05, 0x7B, 0x09, 0x01, 0x02, 0x12, 0x2A, 0x05,
|
||||
0x03, 0x01, 0x28, 0xA3, 0x7C, 0x42, 0x8C, 0x2E, 0x01, 0x83, 0xFF, 0x7F,
|
||||
0x0F, 0x06, 0x0D, 0x01, 0x03, 0xA4, 0x06, 0x04, 0x01, 0x80, 0x78, 0xA3,
|
||||
0x01, 0x00, 0x8C, 0x40, 0x18, 0x05, 0x03, 0x01, 0x28, 0xA3, 0x01, 0x00,
|
||||
0x00, 0x00, 0xB4, 0xB3, 0x00, 0x04, 0x78, 0x2E, 0xCE, 0x06, 0x16, 0xC0,
|
||||
0x2A, 0x01, 0x84, 0x00, 0x10, 0x06, 0x02, 0x6F, 0x2B, 0x2A, 0x03, 0x00,
|
||||
0x85, 0x47, 0xB6, 0x02, 0x00, 0x78, 0x2E, 0xA8, 0x27, 0x78, 0x2E, 0x2A,
|
||||
0xCC, 0x47, 0xCB, 0x03, 0x01, 0x03, 0x02, 0x02, 0x01, 0x02, 0x02, 0x39,
|
||||
0x06, 0x14, 0xC2, 0x2A, 0x03, 0x03, 0x85, 0x47, 0xB6, 0x02, 0x03, 0x78,
|
||||
0x2E, 0xA8, 0x02, 0x02, 0x06, 0x03, 0x26, 0x04, 0x01, 0x24, 0x9D, 0x00,
|
||||
0x00, 0xBA, 0x01, 0x10, 0x0F, 0x05, 0x02, 0x73, 0x2B, 0x00, 0x00, 0x9E,
|
||||
0xBA, 0x01, 0x14, 0x0E, 0x06, 0x02, 0x73, 0x2B, 0x85, 0x01, 0x0C, 0x08,
|
||||
0x01, 0x0C, 0xB6, 0x9D, 0x85, 0x2A, 0x01, 0x0C, 0x08, 0x01, 0x0C, 0x32,
|
||||
0x05, 0x02, 0x67, 0x2B, 0x00, 0x02, 0x03, 0x00, 0x03, 0x01, 0x02, 0x00,
|
||||
0x9A, 0x02, 0x01, 0x02, 0x00, 0x3C, 0x2A, 0x01, 0x00, 0x0F, 0x06, 0x02,
|
||||
0x65, 0x00, 0xD1, 0x04, 0x74, 0x00, 0xC0, 0x01, 0x01, 0x0E, 0x06, 0x02,
|
||||
0x68, 0x2B, 0xC2, 0x2A, 0x2A, 0x5F, 0x47, 0x01, 0x05, 0x11, 0x39, 0x06,
|
||||
0x02, 0x68, 0x2B, 0x01, 0x08, 0x08, 0x2A, 0x84, 0x30, 0x0B, 0x06, 0x0D,
|
||||
0x2A, 0x01, 0x01, 0x47, 0x0C, 0x3F, 0x2A, 0x84, 0x42, 0x86, 0x42, 0x04,
|
||||
0x01, 0x29, 0x00, 0x00, 0xC0, 0x8A, 0x30, 0x01, 0x00, 0x3A, 0x0F, 0x06,
|
||||
0x13, 0x29, 0x01, 0x01, 0x0F, 0x05, 0x02, 0x6B, 0x2B, 0xC2, 0x06, 0x02,
|
||||
0x6B, 0x2B, 0x01, 0x02, 0x8A, 0x42, 0x04, 0x28, 0x01, 0x02, 0x3A, 0x0F,
|
||||
0x06, 0x1F, 0x29, 0x01, 0x0D, 0x0F, 0x05, 0x02, 0x6B, 0x2B, 0xC2, 0x01,
|
||||
0x0C, 0x0F, 0x05, 0x02, 0x6B, 0x2B, 0x85, 0x01, 0x0C, 0xB6, 0x8B, 0x85,
|
||||
0x01, 0x0C, 0x32, 0x05, 0x02, 0x6B, 0x2B, 0x04, 0x03, 0x6B, 0x2B, 0x29,
|
||||
0x00, 0x00, 0xC0, 0xA7, 0xC0, 0xA7, 0x2A, 0x06, 0x1D, 0xC2, 0x06, 0x03,
|
||||
0xBC, 0x04, 0x15, 0xC0, 0x2A, 0x01, 0x81, 0x7F, 0x0D, 0x06, 0x0C, 0x2A,
|
||||
0x8D, 0x08, 0x01, 0x00, 0x47, 0x42, 0x8D, 0x47, 0xB6, 0x04, 0x01, 0xC9,
|
||||
0x04, 0x60, 0x9D, 0x9D, 0x00, 0x00, 0xBB, 0x2A, 0x5F, 0x06, 0x07, 0x29,
|
||||
0x06, 0x02, 0x69, 0x2B, 0x04, 0x74, 0x00, 0x00, 0xC3, 0x01, 0x03, 0xC1,
|
||||
0x47, 0x29, 0x47, 0x00, 0x00, 0xC0, 0xC9, 0x00, 0x03, 0x01, 0x00, 0x03,
|
||||
0x00, 0xC0, 0xA7, 0x2A, 0x06, 0x80, 0x50, 0xC2, 0x03, 0x01, 0xC2, 0x03,
|
||||
0x02, 0x02, 0x01, 0x01, 0x08, 0x0F, 0x06, 0x16, 0x02, 0x02, 0x01, 0x0F,
|
||||
0x0D, 0x06, 0x0D, 0x01, 0x01, 0x02, 0x02, 0x01, 0x10, 0x08, 0x0C, 0x02,
|
||||
0x00, 0x39, 0x03, 0x00, 0x04, 0x2A, 0x02, 0x01, 0x01, 0x02, 0x11, 0x02,
|
||||
0x01, 0x01, 0x06, 0x0D, 0x13, 0x02, 0x02, 0x01, 0x01, 0x0F, 0x02, 0x02,
|
||||
0x01, 0x03, 0x0F, 0x39, 0x13, 0x06, 0x11, 0x02, 0x00, 0x01, 0x01, 0x02,
|
||||
0x02, 0x60, 0x01, 0x02, 0x0C, 0x02, 0x01, 0x08, 0x0C, 0x39, 0x03, 0x00,
|
||||
0x04, 0xFF, 0x2C, 0x9B, 0x02, 0x00, 0x00, 0x00, 0xBE, 0xA5, 0xBB, 0x80,
|
||||
0x41, 0x9B, 0x00, 0x00, 0xBE, 0xA5, 0xBE, 0xA5, 0x01, 0x00, 0x7C, 0x41,
|
||||
0x2A, 0x06, 0x15, 0xBE, 0x2A, 0x01, 0x20, 0x0B, 0x06, 0x0B, 0x01, 0x01,
|
||||
0x47, 0x0C, 0x7C, 0x2F, 0x39, 0x7C, 0x41, 0x04, 0x01, 0x29, 0x04, 0x68,
|
||||
0x9B, 0x9B, 0x00, 0x00, 0x01, 0x02, 0x98, 0xC1, 0x01, 0x08, 0x0C, 0xC1,
|
||||
0x08, 0x00, 0x00, 0x01, 0x03, 0x98, 0xC1, 0x01, 0x08, 0x0C, 0xC1, 0x08,
|
||||
0x01, 0x08, 0x0C, 0xC1, 0x08, 0x00, 0x00, 0x01, 0x01, 0x98, 0xC1, 0x00,
|
||||
0x00, 0x3D, 0x2A, 0x5B, 0x05, 0x01, 0x00, 0x29, 0xCF, 0x04, 0x76, 0x02,
|
||||
0x03, 0x00, 0x92, 0x30, 0x03, 0x01, 0x01, 0x00, 0x2A, 0x02, 0x01, 0x0B,
|
||||
0x06, 0x10, 0x2A, 0x01, 0x01, 0x0C, 0x91, 0x08, 0x2E, 0x02, 0x00, 0x0F,
|
||||
0x06, 0x01, 0x00, 0x5F, 0x04, 0x6A, 0x29, 0x01, 0x7F, 0x00, 0x00, 0x2C,
|
||||
0x19, 0x38, 0x06, 0x04, 0xCD, 0x29, 0x04, 0x78, 0x01, 0x16, 0x87, 0x42,
|
||||
0x01, 0x00, 0xE0, 0x01, 0x00, 0xDF, 0x2C, 0x01, 0x17, 0x87, 0x42, 0x00,
|
||||
0x00, 0x01, 0x15, 0x87, 0x42, 0x47, 0x55, 0x29, 0x55, 0x29, 0x2C, 0x00,
|
||||
0x00, 0x01, 0x01, 0x47, 0xC4, 0x00, 0x00, 0xB9, 0x01, 0x01, 0x0F, 0x05,
|
||||
0x02, 0x71, 0x2B, 0x2A, 0xC7, 0x29, 0x00, 0x00, 0x47, 0x3A, 0x98, 0x47,
|
||||
0x2A, 0x06, 0x05, 0xC1, 0x29, 0x60, 0x04, 0x78, 0x29, 0x00, 0x02, 0x03,
|
||||
0x00, 0x76, 0x2E, 0x9A, 0x03, 0x01, 0x02, 0x01, 0x01, 0x0F, 0x13, 0x02,
|
||||
0x02, 0x62, 0x01, 0x02, 0x0C, 0x02, 0x01, 0x08, 0x0C, 0x39, 0x03, 0x00,
|
||||
0x04, 0xFF, 0x2C, 0x9D, 0x02, 0x00, 0x00, 0x00, 0xC0, 0xA7, 0xBD, 0x82,
|
||||
0x41, 0x9D, 0x00, 0x00, 0xC0, 0xA7, 0xC0, 0xA7, 0x01, 0x00, 0x7E, 0x41,
|
||||
0x2A, 0x06, 0x15, 0xC0, 0x2A, 0x01, 0x20, 0x0B, 0x06, 0x0B, 0x01, 0x01,
|
||||
0x47, 0x0C, 0x7E, 0x2F, 0x39, 0x7E, 0x41, 0x04, 0x01, 0x29, 0x04, 0x68,
|
||||
0x9D, 0x9D, 0x00, 0x00, 0x01, 0x02, 0x9A, 0xC3, 0x01, 0x08, 0x0C, 0xC3,
|
||||
0x08, 0x00, 0x00, 0x01, 0x03, 0x9A, 0xC3, 0x01, 0x08, 0x0C, 0xC3, 0x08,
|
||||
0x01, 0x08, 0x0C, 0xC3, 0x08, 0x00, 0x00, 0x01, 0x01, 0x9A, 0xC3, 0x00,
|
||||
0x00, 0x3D, 0x2A, 0x5D, 0x05, 0x01, 0x00, 0x29, 0xD1, 0x04, 0x76, 0x02,
|
||||
0x03, 0x00, 0x94, 0x30, 0x03, 0x01, 0x01, 0x00, 0x2A, 0x02, 0x01, 0x0B,
|
||||
0x06, 0x10, 0x2A, 0x01, 0x01, 0x0C, 0x93, 0x08, 0x2E, 0x02, 0x00, 0x0F,
|
||||
0x06, 0x01, 0x00, 0x61, 0x04, 0x6A, 0x29, 0x01, 0x7F, 0x00, 0x00, 0x2C,
|
||||
0x19, 0x38, 0x06, 0x04, 0xCF, 0x29, 0x04, 0x78, 0x01, 0x16, 0x89, 0x42,
|
||||
0x01, 0x00, 0xE2, 0x01, 0x00, 0xE1, 0x2C, 0x01, 0x17, 0x89, 0x42, 0x00,
|
||||
0x00, 0x01, 0x15, 0x89, 0x42, 0x47, 0x57, 0x29, 0x57, 0x29, 0x2C, 0x00,
|
||||
0x00, 0x01, 0x01, 0x47, 0xC6, 0x00, 0x00, 0xBB, 0x01, 0x01, 0x0F, 0x05,
|
||||
0x02, 0x73, 0x2B, 0x2A, 0xC9, 0x29, 0x00, 0x00, 0x47, 0x3A, 0x9A, 0x47,
|
||||
0x2A, 0x06, 0x05, 0xC3, 0x29, 0x62, 0x04, 0x78, 0x29, 0x00, 0x02, 0x03,
|
||||
0x00, 0x78, 0x2E, 0x9C, 0x03, 0x01, 0x02, 0x01, 0x01, 0x0F, 0x13, 0x02,
|
||||
0x01, 0x01, 0x04, 0x12, 0x01, 0x0F, 0x13, 0x02, 0x01, 0x01, 0x08, 0x12,
|
||||
0x01, 0x0F, 0x13, 0x01, 0x00, 0x3A, 0x0F, 0x06, 0x10, 0x29, 0x01, 0x00,
|
||||
0x01, 0x18, 0x02, 0x00, 0x06, 0x03, 0x4A, 0x04, 0x01, 0x4B, 0x04, 0x80,
|
||||
0x68, 0x01, 0x01, 0x3A, 0x0F, 0x06, 0x10, 0x29, 0x01, 0x01, 0x01, 0x10,
|
||||
0x02, 0x00, 0x06, 0x03, 0x4A, 0x04, 0x01, 0x4B, 0x04, 0x80, 0x52, 0x01,
|
||||
0x02, 0x3A, 0x0F, 0x06, 0x0F, 0x29, 0x01, 0x01, 0x01, 0x20, 0x02, 0x00,
|
||||
0x06, 0x03, 0x4A, 0x04, 0x01, 0x4B, 0x04, 0x3D, 0x01, 0x03, 0x3A, 0x0F,
|
||||
0x06, 0x0E, 0x29, 0x29, 0x01, 0x10, 0x02, 0x00, 0x06, 0x03, 0x48, 0x04,
|
||||
0x01, 0x49, 0x04, 0x29, 0x01, 0x04, 0x3A, 0x0F, 0x06, 0x0E, 0x29, 0x29,
|
||||
0x01, 0x20, 0x02, 0x00, 0x06, 0x03, 0x48, 0x04, 0x01, 0x49, 0x04, 0x15,
|
||||
0x01, 0x05, 0x3A, 0x0F, 0x06, 0x0C, 0x29, 0x29, 0x02, 0x00, 0x06, 0x03,
|
||||
0x4C, 0x04, 0x01, 0x4D, 0x04, 0x03, 0x68, 0x2B, 0x29, 0x00, 0x00, 0x9A,
|
||||
0x01, 0x0C, 0x12, 0x01, 0x02, 0x10, 0x00, 0x00, 0x9A, 0x01, 0x0C, 0x12,
|
||||
0x2A, 0x5E, 0x47, 0x01, 0x03, 0x0B, 0x13, 0x00, 0x00, 0x9A, 0x01, 0x0C,
|
||||
0x12, 0x01, 0x01, 0x0F, 0x00, 0x00, 0x9A, 0x01, 0x0C, 0x12, 0x5D, 0x00,
|
||||
0x00, 0x1B, 0x01, 0x00, 0x73, 0x30, 0x2A, 0x06, 0x22, 0x01, 0x01, 0x3A,
|
||||
0x0F, 0x06, 0x06, 0x29, 0x01, 0x00, 0x9E, 0x04, 0x14, 0x01, 0x02, 0x3A,
|
||||
0x0F, 0x06, 0x0D, 0x29, 0x75, 0x30, 0x01, 0x01, 0x0F, 0x06, 0x03, 0x01,
|
||||
0x10, 0x39, 0x04, 0x01, 0x29, 0x04, 0x01, 0x29, 0x7B, 0x30, 0x05, 0x33,
|
||||
0x31, 0x06, 0x30, 0x86, 0x30, 0x01, 0x14, 0x3A, 0x0F, 0x06, 0x06, 0x29,
|
||||
0x01, 0x02, 0x39, 0x04, 0x22, 0x01, 0x15, 0x3A, 0x0F, 0x06, 0x09, 0x29,
|
||||
0xA8, 0x06, 0x03, 0x01, 0x7F, 0x9E, 0x04, 0x13, 0x01, 0x16, 0x3A, 0x0F,
|
||||
0x06, 0x06, 0x29, 0x01, 0x01, 0x39, 0x04, 0x07, 0x29, 0x01, 0x04, 0x39,
|
||||
0x01, 0x00, 0x29, 0x19, 0x06, 0x03, 0x01, 0x08, 0x39, 0x00, 0x00, 0x1B,
|
||||
0x2A, 0x05, 0x13, 0x31, 0x06, 0x10, 0x86, 0x30, 0x01, 0x15, 0x0F, 0x06,
|
||||
0x08, 0x29, 0xA8, 0x01, 0x00, 0x75, 0x42, 0x04, 0x01, 0x23, 0x00, 0x00,
|
||||
0xCD, 0x01, 0x07, 0x13, 0x01, 0x01, 0x10, 0x06, 0x02, 0x71, 0x2B, 0x00,
|
||||
0x01, 0x03, 0x00, 0x2C, 0x19, 0x06, 0x05, 0x02, 0x00, 0x87, 0x42, 0x00,
|
||||
0xCD, 0x29, 0x04, 0x74, 0x00, 0x01, 0x14, 0xD0, 0x01, 0x01, 0xE0, 0x2C,
|
||||
0x2A, 0x01, 0x00, 0xC8, 0x01, 0x16, 0xD0, 0xD4, 0x2C, 0x00, 0x00, 0x01,
|
||||
0x0B, 0xE0, 0x50, 0x2A, 0x2A, 0x01, 0x03, 0x08, 0xDF, 0xDF, 0x14, 0x2A,
|
||||
0x5B, 0x06, 0x02, 0x29, 0x00, 0xDF, 0x1E, 0x2A, 0x06, 0x05, 0x83, 0x47,
|
||||
0xD8, 0x04, 0x77, 0x29, 0x04, 0x6C, 0x00, 0x01, 0x00, 0xDA, 0x93, 0x2E,
|
||||
0x01, 0x86, 0x03, 0x11, 0x06, 0x05, 0x61, 0x01, 0x00, 0xDB, 0x08, 0x4E,
|
||||
0x08, 0x01, 0x03, 0x08, 0x01, 0x0D, 0xE0, 0xDF, 0x01, 0x00, 0xDA, 0xE0,
|
||||
0x01, 0x01, 0xDA, 0x29, 0x93, 0x2E, 0x01, 0x86, 0x03, 0x11, 0x06, 0x08,
|
||||
0x01, 0x00, 0xDB, 0xDE, 0x01, 0x01, 0xDB, 0x29, 0x4E, 0xDE, 0x16, 0x15,
|
||||
0x2A, 0x5B, 0x06, 0x02, 0x29, 0x00, 0xDE, 0x1F, 0x2A, 0x06, 0x05, 0x83,
|
||||
0x47, 0xD8, 0x04, 0x77, 0x29, 0x04, 0x6C, 0x00, 0x9C, 0x01, 0x14, 0xE0,
|
||||
0x01, 0x0C, 0xDF, 0x83, 0x01, 0x0C, 0xD8, 0x00, 0x04, 0x03, 0x00, 0x01,
|
||||
0x02, 0xE0, 0x01, 0x80, 0x46, 0x88, 0x30, 0x01, 0x02, 0x0F, 0x06, 0x0C,
|
||||
0x02, 0x00, 0x06, 0x04, 0x01, 0x05, 0x04, 0x02, 0x01, 0x1D, 0x04, 0x02,
|
||||
0x01, 0x00, 0x03, 0x01, 0x84, 0x30, 0x06, 0x04, 0x01, 0x05, 0x04, 0x02,
|
||||
0x01, 0x00, 0x03, 0x02, 0x8A, 0x2E, 0x2A, 0x06, 0x05, 0x60, 0x21, 0x01,
|
||||
0x07, 0x08, 0x03, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x02, 0x03, 0x08,
|
||||
0x2A, 0x06, 0x03, 0x01, 0x02, 0x08, 0x08, 0xDF, 0x93, 0x2E, 0xDE, 0x8C,
|
||||
0x01, 0x04, 0x17, 0x8C, 0x01, 0x04, 0x08, 0x01, 0x1C, 0x34, 0x8C, 0x01,
|
||||
0x20, 0xD8, 0x01, 0x20, 0xE0, 0x8D, 0x01, 0x20, 0xD8, 0x76, 0x2E, 0xDE,
|
||||
0x01, 0x00, 0xE0, 0x02, 0x01, 0x02, 0x02, 0x08, 0x02, 0x03, 0x08, 0x2A,
|
||||
0x06, 0x80, 0x40, 0xDE, 0x02, 0x01, 0x2A, 0x06, 0x10, 0x01, 0x83, 0xFE,
|
||||
0x01, 0xDE, 0x01, 0x04, 0x09, 0x2A, 0xDE, 0x60, 0x89, 0x47, 0xD9, 0x04,
|
||||
0x01, 0x29, 0x02, 0x02, 0x06, 0x0C, 0x01, 0x01, 0xDE, 0x01, 0x01, 0xDE,
|
||||
0x84, 0x30, 0x01, 0x08, 0x09, 0xE0, 0x02, 0x03, 0x2A, 0x06, 0x11, 0x01,
|
||||
0x10, 0xDE, 0x01, 0x04, 0x09, 0x2A, 0xDE, 0x62, 0x2A, 0xDE, 0x60, 0x83,
|
||||
0x47, 0xD9, 0x04, 0x01, 0x29, 0x04, 0x01, 0x29, 0x00, 0x00, 0x01, 0x0E,
|
||||
0xE0, 0x01, 0x00, 0xDF, 0x00, 0x03, 0x76, 0x2E, 0xCA, 0x05, 0x01, 0x00,
|
||||
0x7C, 0x2F, 0x2A, 0x01, 0x82, 0x80, 0x80, 0x80, 0x00, 0x13, 0x06, 0x05,
|
||||
0x29, 0x01, 0x1D, 0x04, 0x0E, 0x2A, 0x01, 0x83, 0xC0, 0x80, 0x80, 0x00,
|
||||
0x13, 0x2A, 0x06, 0x01, 0x47, 0x29, 0xA3, 0x03, 0x00, 0x02, 0x00, 0x25,
|
||||
0x2A, 0x5B, 0x06, 0x02, 0x37, 0x2B, 0x03, 0x01, 0x93, 0x2E, 0x01, 0x86,
|
||||
0x03, 0x11, 0x03, 0x02, 0x01, 0x0C, 0xE0, 0x02, 0x01, 0x7E, 0x30, 0x08,
|
||||
0x02, 0x02, 0x01, 0x02, 0x13, 0x08, 0x01, 0x06, 0x08, 0xDF, 0x01, 0x03,
|
||||
0xE0, 0x02, 0x00, 0xDE, 0x7D, 0x7E, 0x30, 0xD9, 0x02, 0x02, 0x06, 0x1C,
|
||||
0x90, 0x2E, 0x2A, 0x01, 0x83, 0xFE, 0x00, 0x0B, 0x06, 0x03, 0xDE, 0x04,
|
||||
0x0F, 0x01, 0x81, 0x7F, 0x13, 0xE0, 0x76, 0x2E, 0xCB, 0x01, 0x01, 0x0C,
|
||||
0x01, 0x03, 0x08, 0xE0, 0x02, 0x01, 0xDE, 0x83, 0x02, 0x01, 0xD8, 0x00,
|
||||
0x00, 0x54, 0x2A, 0x01, 0x00, 0x0F, 0x06, 0x02, 0x63, 0x00, 0xCD, 0x29,
|
||||
0x04, 0x73, 0x00, 0x2A, 0xE0, 0xD8, 0x00, 0x00, 0x01, 0x00, 0x76, 0x2E,
|
||||
0xC9, 0x06, 0x0C, 0x61, 0x3A, 0x06, 0x08, 0x01, 0x80, 0x41, 0xE0, 0x01,
|
||||
0x80, 0x42, 0xE0, 0x46, 0x06, 0x07, 0x5F, 0x3A, 0x06, 0x03, 0x01, 0x01,
|
||||
0xE0, 0x45, 0x06, 0x08, 0x5F, 0x3A, 0x06, 0x04, 0x01, 0x80, 0x40, 0xE0,
|
||||
0x47, 0x29, 0x00, 0x01, 0x01, 0x00, 0x03, 0x00, 0x46, 0x45, 0x39, 0x05,
|
||||
0x14, 0x01, 0x01, 0x01, 0x80, 0x7C, 0xDC, 0x03, 0x00, 0x01, 0x03, 0x01,
|
||||
0x80, 0x7C, 0xDC, 0x02, 0x00, 0x08, 0x47, 0x29, 0x00, 0x46, 0x06, 0x07,
|
||||
0x01, 0x01, 0x44, 0x29, 0xDC, 0x03, 0x00, 0x45, 0x06, 0x0A, 0x01, 0x03,
|
||||
0x44, 0x29, 0xDC, 0x02, 0x00, 0x08, 0x03, 0x00, 0x29, 0x02, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0x01, 0x04, 0xDD, 0x01, 0x05, 0xDD, 0x01, 0x06, 0xDD,
|
||||
0x01, 0x03, 0xDD, 0x01, 0x02, 0xDD, 0x0A, 0x63, 0x00, 0x01, 0x03, 0x00,
|
||||
0x3A, 0x01, 0x01, 0x02, 0x00, 0x0C, 0x13, 0x05, 0x01, 0x00, 0x61, 0x01,
|
||||
0x03, 0x3B, 0x06, 0x07, 0x02, 0x00, 0xE0, 0x01, 0x02, 0x3B, 0xE0, 0x00,
|
||||
0x00, 0x2A, 0x01, 0x08, 0x52, 0xE0, 0xE0, 0x00, 0x00, 0x2A, 0x01, 0x10,
|
||||
0x52, 0xE0, 0xDE, 0x00, 0x00, 0x2A, 0x55, 0x06, 0x02, 0x29, 0x00, 0xCD,
|
||||
0x29, 0x04, 0x76
|
||||
0x01, 0x18, 0x02, 0x00, 0x06, 0x03, 0x4C, 0x04, 0x01, 0x4D, 0x04, 0x81,
|
||||
0x0D, 0x01, 0x01, 0x3A, 0x0F, 0x06, 0x10, 0x29, 0x01, 0x01, 0x01, 0x10,
|
||||
0x02, 0x00, 0x06, 0x03, 0x4C, 0x04, 0x01, 0x4D, 0x04, 0x80, 0x77, 0x01,
|
||||
0x02, 0x3A, 0x0F, 0x06, 0x10, 0x29, 0x01, 0x01, 0x01, 0x20, 0x02, 0x00,
|
||||
0x06, 0x03, 0x4C, 0x04, 0x01, 0x4D, 0x04, 0x80, 0x61, 0x01, 0x03, 0x3A,
|
||||
0x0F, 0x06, 0x0F, 0x29, 0x29, 0x01, 0x10, 0x02, 0x00, 0x06, 0x03, 0x4A,
|
||||
0x04, 0x01, 0x4B, 0x04, 0x80, 0x4C, 0x01, 0x04, 0x3A, 0x0F, 0x06, 0x0E,
|
||||
0x29, 0x29, 0x01, 0x20, 0x02, 0x00, 0x06, 0x03, 0x4A, 0x04, 0x01, 0x4B,
|
||||
0x04, 0x38, 0x01, 0x05, 0x3A, 0x0F, 0x06, 0x0C, 0x29, 0x29, 0x02, 0x00,
|
||||
0x06, 0x03, 0x4E, 0x04, 0x01, 0x4F, 0x04, 0x26, 0x2A, 0x01, 0x09, 0x10,
|
||||
0x06, 0x02, 0x6A, 0x2B, 0x47, 0x29, 0x2A, 0x01, 0x01, 0x13, 0x01, 0x04,
|
||||
0x0C, 0x01, 0x10, 0x08, 0x47, 0x01, 0x08, 0x13, 0x01, 0x10, 0x47, 0x09,
|
||||
0x02, 0x00, 0x06, 0x03, 0x48, 0x04, 0x01, 0x49, 0x00, 0x29, 0x00, 0x00,
|
||||
0x9C, 0x01, 0x0C, 0x12, 0x01, 0x02, 0x10, 0x00, 0x00, 0x9C, 0x01, 0x0C,
|
||||
0x12, 0x2A, 0x60, 0x47, 0x01, 0x03, 0x0B, 0x13, 0x00, 0x00, 0x9C, 0x01,
|
||||
0x0C, 0x12, 0x01, 0x01, 0x0F, 0x00, 0x00, 0x9C, 0x01, 0x0C, 0x12, 0x5F,
|
||||
0x00, 0x00, 0x1B, 0x01, 0x00, 0x75, 0x30, 0x2A, 0x06, 0x22, 0x01, 0x01,
|
||||
0x3A, 0x0F, 0x06, 0x06, 0x29, 0x01, 0x00, 0xA0, 0x04, 0x14, 0x01, 0x02,
|
||||
0x3A, 0x0F, 0x06, 0x0D, 0x29, 0x77, 0x30, 0x01, 0x01, 0x0F, 0x06, 0x03,
|
||||
0x01, 0x10, 0x39, 0x04, 0x01, 0x29, 0x04, 0x01, 0x29, 0x7D, 0x30, 0x05,
|
||||
0x33, 0x31, 0x06, 0x30, 0x88, 0x30, 0x01, 0x14, 0x3A, 0x0F, 0x06, 0x06,
|
||||
0x29, 0x01, 0x02, 0x39, 0x04, 0x22, 0x01, 0x15, 0x3A, 0x0F, 0x06, 0x09,
|
||||
0x29, 0xAA, 0x06, 0x03, 0x01, 0x7F, 0xA0, 0x04, 0x13, 0x01, 0x16, 0x3A,
|
||||
0x0F, 0x06, 0x06, 0x29, 0x01, 0x01, 0x39, 0x04, 0x07, 0x29, 0x01, 0x04,
|
||||
0x39, 0x01, 0x00, 0x29, 0x19, 0x06, 0x03, 0x01, 0x08, 0x39, 0x00, 0x00,
|
||||
0x1B, 0x2A, 0x05, 0x13, 0x31, 0x06, 0x10, 0x88, 0x30, 0x01, 0x15, 0x0F,
|
||||
0x06, 0x08, 0x29, 0xAA, 0x01, 0x00, 0x77, 0x42, 0x04, 0x01, 0x23, 0x00,
|
||||
0x00, 0xCF, 0x01, 0x07, 0x13, 0x01, 0x01, 0x10, 0x06, 0x02, 0x73, 0x2B,
|
||||
0x00, 0x01, 0x03, 0x00, 0x2C, 0x19, 0x06, 0x05, 0x02, 0x00, 0x89, 0x42,
|
||||
0x00, 0xCF, 0x29, 0x04, 0x74, 0x00, 0x01, 0x14, 0xD2, 0x01, 0x01, 0xE2,
|
||||
0x2C, 0x2A, 0x01, 0x00, 0xCA, 0x01, 0x16, 0xD2, 0xD6, 0x2C, 0x00, 0x00,
|
||||
0x01, 0x0B, 0xE2, 0x52, 0x2A, 0x2A, 0x01, 0x03, 0x08, 0xE1, 0xE1, 0x14,
|
||||
0x2A, 0x5D, 0x06, 0x02, 0x29, 0x00, 0xE1, 0x1E, 0x2A, 0x06, 0x05, 0x85,
|
||||
0x47, 0xDA, 0x04, 0x77, 0x29, 0x04, 0x6C, 0x00, 0x01, 0x00, 0xDC, 0x95,
|
||||
0x2E, 0x01, 0x86, 0x03, 0x11, 0x06, 0x05, 0x63, 0x01, 0x00, 0xDD, 0x08,
|
||||
0x50, 0x08, 0x01, 0x03, 0x08, 0x01, 0x0D, 0xE2, 0xE1, 0x01, 0x00, 0xDC,
|
||||
0xE2, 0x01, 0x01, 0xDC, 0x29, 0x95, 0x2E, 0x01, 0x86, 0x03, 0x11, 0x06,
|
||||
0x08, 0x01, 0x00, 0xDD, 0xE0, 0x01, 0x01, 0xDD, 0x29, 0x50, 0xE0, 0x16,
|
||||
0x15, 0x2A, 0x5D, 0x06, 0x02, 0x29, 0x00, 0xE0, 0x1F, 0x2A, 0x06, 0x05,
|
||||
0x85, 0x47, 0xDA, 0x04, 0x77, 0x29, 0x04, 0x6C, 0x00, 0x9E, 0x01, 0x14,
|
||||
0xE2, 0x01, 0x0C, 0xE1, 0x85, 0x01, 0x0C, 0xDA, 0x00, 0x04, 0x03, 0x00,
|
||||
0x01, 0x02, 0xE2, 0x01, 0x80, 0x46, 0x8A, 0x30, 0x01, 0x02, 0x0F, 0x06,
|
||||
0x0C, 0x02, 0x00, 0x06, 0x04, 0x01, 0x05, 0x04, 0x02, 0x01, 0x1D, 0x04,
|
||||
0x02, 0x01, 0x00, 0x03, 0x01, 0x86, 0x30, 0x06, 0x04, 0x01, 0x05, 0x04,
|
||||
0x02, 0x01, 0x00, 0x03, 0x02, 0x8C, 0x2E, 0x2A, 0x06, 0x05, 0x62, 0x21,
|
||||
0x01, 0x07, 0x08, 0x03, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x02, 0x03,
|
||||
0x08, 0x2A, 0x06, 0x03, 0x01, 0x02, 0x08, 0x08, 0xE1, 0x95, 0x2E, 0xE0,
|
||||
0x8E, 0x01, 0x04, 0x17, 0x8E, 0x01, 0x04, 0x08, 0x01, 0x1C, 0x34, 0x8E,
|
||||
0x01, 0x20, 0xDA, 0x01, 0x20, 0xE2, 0x8F, 0x01, 0x20, 0xDA, 0x78, 0x2E,
|
||||
0xE0, 0x01, 0x00, 0xE2, 0x02, 0x01, 0x02, 0x02, 0x08, 0x02, 0x03, 0x08,
|
||||
0x2A, 0x06, 0x80, 0x40, 0xE0, 0x02, 0x01, 0x2A, 0x06, 0x10, 0x01, 0x83,
|
||||
0xFE, 0x01, 0xE0, 0x01, 0x04, 0x09, 0x2A, 0xE0, 0x62, 0x8B, 0x47, 0xDB,
|
||||
0x04, 0x01, 0x29, 0x02, 0x02, 0x06, 0x0C, 0x01, 0x01, 0xE0, 0x01, 0x01,
|
||||
0xE0, 0x86, 0x30, 0x01, 0x08, 0x09, 0xE2, 0x02, 0x03, 0x2A, 0x06, 0x11,
|
||||
0x01, 0x10, 0xE0, 0x01, 0x04, 0x09, 0x2A, 0xE0, 0x64, 0x2A, 0xE0, 0x62,
|
||||
0x85, 0x47, 0xDB, 0x04, 0x01, 0x29, 0x04, 0x01, 0x29, 0x00, 0x00, 0x01,
|
||||
0x0E, 0xE2, 0x01, 0x00, 0xE1, 0x00, 0x03, 0x78, 0x2E, 0xCC, 0x05, 0x01,
|
||||
0x00, 0x7E, 0x2F, 0x2A, 0x01, 0x82, 0x80, 0x80, 0x80, 0x00, 0x13, 0x06,
|
||||
0x05, 0x29, 0x01, 0x1D, 0x04, 0x0E, 0x2A, 0x01, 0x83, 0xC0, 0x80, 0x80,
|
||||
0x00, 0x13, 0x2A, 0x06, 0x01, 0x47, 0x29, 0xA5, 0x03, 0x00, 0x02, 0x00,
|
||||
0x25, 0x2A, 0x5D, 0x06, 0x02, 0x37, 0x2B, 0x03, 0x01, 0x95, 0x2E, 0x01,
|
||||
0x86, 0x03, 0x11, 0x03, 0x02, 0x01, 0x0C, 0xE2, 0x02, 0x01, 0x80, 0x30,
|
||||
0x08, 0x02, 0x02, 0x01, 0x02, 0x13, 0x08, 0x01, 0x06, 0x08, 0xE1, 0x01,
|
||||
0x03, 0xE2, 0x02, 0x00, 0xE0, 0x7F, 0x80, 0x30, 0xDB, 0x02, 0x02, 0x06,
|
||||
0x1C, 0x92, 0x2E, 0x2A, 0x01, 0x83, 0xFE, 0x00, 0x0B, 0x06, 0x03, 0xE0,
|
||||
0x04, 0x0F, 0x01, 0x81, 0x7F, 0x13, 0xE2, 0x78, 0x2E, 0xCD, 0x01, 0x01,
|
||||
0x0C, 0x01, 0x03, 0x08, 0xE2, 0x02, 0x01, 0xE0, 0x85, 0x02, 0x01, 0xDA,
|
||||
0x00, 0x00, 0x56, 0x2A, 0x01, 0x00, 0x0F, 0x06, 0x02, 0x65, 0x00, 0xCF,
|
||||
0x29, 0x04, 0x73, 0x00, 0x2A, 0xE2, 0xDA, 0x00, 0x00, 0x01, 0x00, 0x78,
|
||||
0x2E, 0xCB, 0x06, 0x0C, 0x63, 0x3A, 0x06, 0x08, 0x01, 0x80, 0x41, 0xE2,
|
||||
0x01, 0x80, 0x42, 0xE2, 0x46, 0x06, 0x07, 0x61, 0x3A, 0x06, 0x03, 0x01,
|
||||
0x01, 0xE2, 0x45, 0x06, 0x08, 0x61, 0x3A, 0x06, 0x04, 0x01, 0x80, 0x40,
|
||||
0xE2, 0x47, 0x29, 0x00, 0x01, 0x01, 0x00, 0x03, 0x00, 0x46, 0x45, 0x39,
|
||||
0x05, 0x14, 0x01, 0x01, 0x01, 0x80, 0x7C, 0xDE, 0x03, 0x00, 0x01, 0x03,
|
||||
0x01, 0x80, 0x7C, 0xDE, 0x02, 0x00, 0x08, 0x47, 0x29, 0x00, 0x46, 0x06,
|
||||
0x07, 0x01, 0x01, 0x44, 0x29, 0xDE, 0x03, 0x00, 0x45, 0x06, 0x0A, 0x01,
|
||||
0x03, 0x44, 0x29, 0xDE, 0x02, 0x00, 0x08, 0x03, 0x00, 0x29, 0x02, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x01, 0x04, 0xDF, 0x01, 0x05, 0xDF, 0x01, 0x06,
|
||||
0xDF, 0x01, 0x03, 0xDF, 0x01, 0x02, 0xDF, 0x0A, 0x65, 0x00, 0x01, 0x03,
|
||||
0x00, 0x3A, 0x01, 0x01, 0x02, 0x00, 0x0C, 0x13, 0x05, 0x01, 0x00, 0x63,
|
||||
0x01, 0x03, 0x3B, 0x06, 0x07, 0x02, 0x00, 0xE2, 0x01, 0x02, 0x3B, 0xE2,
|
||||
0x00, 0x00, 0x2A, 0x01, 0x08, 0x54, 0xE2, 0xE2, 0x00, 0x00, 0x2A, 0x01,
|
||||
0x10, 0x54, 0xE2, 0xE0, 0x00, 0x00, 0x2A, 0x57, 0x06, 0x02, 0x29, 0x00,
|
||||
0xCF, 0x29, 0x04, 0x76
|
||||
};
|
||||
|
||||
static const uint16_t t0_caddr[] = {
|
||||
|
|
@ -895,33 +901,33 @@ static const uint16_t t0_caddr[] = {
|
|||
2251,
|
||||
2264,
|
||||
2279,
|
||||
2435,
|
||||
2444,
|
||||
2457,
|
||||
2466,
|
||||
2473,
|
||||
2579,
|
||||
2604,
|
||||
2617,
|
||||
2633,
|
||||
2651,
|
||||
2683,
|
||||
2756,
|
||||
2769,
|
||||
2950,
|
||||
2958,
|
||||
3085,
|
||||
3099,
|
||||
3104,
|
||||
3148,
|
||||
3205,
|
||||
3226,
|
||||
3253,
|
||||
3261,
|
||||
3269
|
||||
2472,
|
||||
2481,
|
||||
2494,
|
||||
2503,
|
||||
2510,
|
||||
2616,
|
||||
2641,
|
||||
2654,
|
||||
2670,
|
||||
2688,
|
||||
2720,
|
||||
2793,
|
||||
2806,
|
||||
2987,
|
||||
2995,
|
||||
3122,
|
||||
3136,
|
||||
3141,
|
||||
3185,
|
||||
3242,
|
||||
3263,
|
||||
3290,
|
||||
3298,
|
||||
3306
|
||||
};
|
||||
|
||||
#define T0_INTERPRETED 91
|
||||
#define T0_INTERPRETED 93
|
||||
|
||||
#define T0_ENTER(ip, rp, slot) do { \
|
||||
const unsigned char *t0_newip; \
|
||||
|
|
@ -942,7 +948,7 @@ name(void *ctx) \
|
|||
T0_ENTER(t0ctx->ip, t0ctx->rp, slot); \
|
||||
}
|
||||
|
||||
T0_DEFENTRY(br_ssl_hs_server_init_main, 164)
|
||||
T0_DEFENTRY(br_ssl_hs_server_init_main, 166)
|
||||
|
||||
#define T0_NEXT(t0ipp) (*(*(t0ipp)) ++)
|
||||
|
||||
|
|
@ -1702,6 +1708,36 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
}
|
||||
break;
|
||||
case 72: {
|
||||
/* switch-aesccm-in */
|
||||
|
||||
int is_client, prf_id;
|
||||
unsigned cipher_key_len, tag_len;
|
||||
|
||||
tag_len = T0_POP();
|
||||
cipher_key_len = T0_POP();
|
||||
prf_id = T0_POP();
|
||||
is_client = T0_POP();
|
||||
br_ssl_engine_switch_ccm_in(ENG, is_client, prf_id,
|
||||
ENG->iaes_ctrcbc, cipher_key_len, tag_len);
|
||||
|
||||
}
|
||||
break;
|
||||
case 73: {
|
||||
/* switch-aesccm-out */
|
||||
|
||||
int is_client, prf_id;
|
||||
unsigned cipher_key_len, tag_len;
|
||||
|
||||
tag_len = T0_POP();
|
||||
cipher_key_len = T0_POP();
|
||||
prf_id = T0_POP();
|
||||
is_client = T0_POP();
|
||||
br_ssl_engine_switch_ccm_out(ENG, is_client, prf_id,
|
||||
ENG->iaes_ctrcbc, cipher_key_len, tag_len);
|
||||
|
||||
}
|
||||
break;
|
||||
case 74: {
|
||||
/* switch-aesgcm-in */
|
||||
|
||||
int is_client, prf_id;
|
||||
|
|
@ -1715,7 +1751,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 73: {
|
||||
case 75: {
|
||||
/* switch-aesgcm-out */
|
||||
|
||||
int is_client, prf_id;
|
||||
|
|
@ -1729,7 +1765,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 74: {
|
||||
case 76: {
|
||||
/* switch-cbc-in */
|
||||
|
||||
int is_client, prf_id, mac_id, aes;
|
||||
|
|
@ -1745,7 +1781,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 75: {
|
||||
case 77: {
|
||||
/* switch-cbc-out */
|
||||
|
||||
int is_client, prf_id, mac_id, aes;
|
||||
|
|
@ -1761,7 +1797,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 76: {
|
||||
case 78: {
|
||||
/* switch-chapol-in */
|
||||
|
||||
int is_client, prf_id;
|
||||
|
|
@ -1772,7 +1808,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 77: {
|
||||
case 79: {
|
||||
/* switch-chapol-out */
|
||||
|
||||
int is_client, prf_id;
|
||||
|
|
@ -1783,7 +1819,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 78: {
|
||||
case 80: {
|
||||
/* ta-names-total-length */
|
||||
|
||||
size_t u, len;
|
||||
|
|
@ -1802,7 +1838,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 79: {
|
||||
case 81: {
|
||||
/* test-protocol-name */
|
||||
|
||||
size_t len = T0_POP();
|
||||
|
|
@ -1821,7 +1857,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 80: {
|
||||
case 82: {
|
||||
/* total-chain-length */
|
||||
|
||||
size_t u;
|
||||
|
|
@ -1835,7 +1871,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 81: {
|
||||
case 83: {
|
||||
/* u< */
|
||||
|
||||
uint32_t b = T0_POP();
|
||||
|
|
@ -1844,7 +1880,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 82: {
|
||||
case 84: {
|
||||
/* u>> */
|
||||
|
||||
int c = (int)T0_POPi();
|
||||
|
|
@ -1853,7 +1889,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 83: {
|
||||
case 85: {
|
||||
/* verify-CV-sig */
|
||||
|
||||
int err;
|
||||
|
|
@ -1863,7 +1899,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 84: {
|
||||
case 86: {
|
||||
/* write-blob-chunk */
|
||||
|
||||
size_t clen = ENG->hlen_out;
|
||||
|
|
@ -1887,7 +1923,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 85: {
|
||||
case 87: {
|
||||
/* write8-native */
|
||||
|
||||
unsigned char x;
|
||||
|
|
@ -1906,7 +1942,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 86: {
|
||||
case 88: {
|
||||
/* x509-append */
|
||||
|
||||
const br_x509_class *xc;
|
||||
|
|
@ -1918,7 +1954,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 87: {
|
||||
case 89: {
|
||||
/* x509-end-cert */
|
||||
|
||||
const br_x509_class *xc;
|
||||
|
|
@ -1928,7 +1964,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 88: {
|
||||
case 90: {
|
||||
/* x509-end-chain */
|
||||
|
||||
const br_x509_class *xc;
|
||||
|
|
@ -1938,7 +1974,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 89: {
|
||||
case 91: {
|
||||
/* x509-start-cert */
|
||||
|
||||
const br_x509_class *xc;
|
||||
|
|
@ -1948,7 +1984,7 @@ br_ssl_hs_server_run(void *t0ctx)
|
|||
|
||||
}
|
||||
break;
|
||||
case 90: {
|
||||
case 92: {
|
||||
/* x509-start-chain */
|
||||
|
||||
const br_x509_class *xc;
|
||||
|
|
|
|||
213
src/ssl/ssl_rec_ccm.c
Normal file
213
src/ssl/ssl_rec_ccm.c
Normal file
|
|
@ -0,0 +1,213 @@
|
|||
/*
|
||||
* Copyright (c) 2018 Thomas Pornin <pornin@bolet.org>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "inner.h"
|
||||
|
||||
/*
|
||||
* CCM initialisation. This does everything except setting the vtable,
|
||||
* which depends on whether this is a context for encrypting or for
|
||||
* decrypting.
|
||||
*/
|
||||
static void
|
||||
gen_ccm_init(br_sslrec_ccm_context *cc,
|
||||
const br_block_ctrcbc_class *bc_impl,
|
||||
const void *key, size_t key_len,
|
||||
const void *iv, size_t tag_len)
|
||||
{
|
||||
cc->seq = 0;
|
||||
bc_impl->init(&cc->bc.vtable, key, key_len);
|
||||
memcpy(cc->iv, iv, sizeof cc->iv);
|
||||
cc->tag_len = tag_len;
|
||||
}
|
||||
|
||||
static void
|
||||
in_ccm_init(br_sslrec_ccm_context *cc,
|
||||
const br_block_ctrcbc_class *bc_impl,
|
||||
const void *key, size_t key_len,
|
||||
const void *iv, size_t tag_len)
|
||||
{
|
||||
cc->vtable.in = &br_sslrec_in_ccm_vtable;
|
||||
gen_ccm_init(cc, bc_impl, key, key_len, iv, tag_len);
|
||||
}
|
||||
|
||||
static int
|
||||
ccm_check_length(const br_sslrec_ccm_context *cc, size_t rlen)
|
||||
{
|
||||
/*
|
||||
* CCM overhead is 8 bytes for nonce_explicit, and the tag
|
||||
* (normally 8 or 16 bytes, depending on cipher suite).
|
||||
*/
|
||||
size_t over;
|
||||
|
||||
over = 8 + cc->tag_len;
|
||||
return rlen >= over && rlen <= (16384 + over);
|
||||
}
|
||||
|
||||
static unsigned char *
|
||||
ccm_decrypt(br_sslrec_ccm_context *cc,
|
||||
int record_type, unsigned version, void *data, size_t *data_len)
|
||||
{
|
||||
br_ccm_context zc;
|
||||
unsigned char *buf;
|
||||
unsigned char nonce[12], header[13];
|
||||
size_t len;
|
||||
|
||||
buf = (unsigned char *)data + 8;
|
||||
len = *data_len - (8 + cc->tag_len);
|
||||
|
||||
/*
|
||||
* Make nonce (implicit + explicit parts).
|
||||
*/
|
||||
memcpy(nonce, cc->iv, sizeof cc->iv);
|
||||
memcpy(nonce + 4, data, 8);
|
||||
|
||||
/*
|
||||
* Assemble synthetic header for the AAD.
|
||||
*/
|
||||
br_enc64be(header, cc->seq ++);
|
||||
header[8] = (unsigned char)record_type;
|
||||
br_enc16be(header + 9, version);
|
||||
br_enc16be(header + 11, len);
|
||||
|
||||
/*
|
||||
* Perform CCM decryption.
|
||||
*/
|
||||
br_ccm_init(&zc, &cc->bc.vtable);
|
||||
br_ccm_reset(&zc, nonce, sizeof nonce, sizeof header, len, cc->tag_len);
|
||||
br_ccm_aad_inject(&zc, header, sizeof header);
|
||||
br_ccm_flip(&zc);
|
||||
br_ccm_run(&zc, 0, buf, len);
|
||||
if (!br_ccm_check_tag(&zc, buf + len)) {
|
||||
return NULL;
|
||||
}
|
||||
*data_len = len;
|
||||
return buf;
|
||||
}
|
||||
|
||||
/* see bearssl_ssl.h */
|
||||
const br_sslrec_in_ccm_class br_sslrec_in_ccm_vtable = {
|
||||
{
|
||||
sizeof(br_sslrec_ccm_context),
|
||||
(int (*)(const br_sslrec_in_class *const *, size_t))
|
||||
&ccm_check_length,
|
||||
(unsigned char *(*)(const br_sslrec_in_class **,
|
||||
int, unsigned, void *, size_t *))
|
||||
&ccm_decrypt
|
||||
},
|
||||
(void (*)(const br_sslrec_in_ccm_class **,
|
||||
const br_block_ctrcbc_class *, const void *, size_t,
|
||||
const void *, size_t))
|
||||
&in_ccm_init
|
||||
};
|
||||
|
||||
static void
|
||||
out_ccm_init(br_sslrec_ccm_context *cc,
|
||||
const br_block_ctrcbc_class *bc_impl,
|
||||
const void *key, size_t key_len,
|
||||
const void *iv, size_t tag_len)
|
||||
{
|
||||
cc->vtable.out = &br_sslrec_out_ccm_vtable;
|
||||
gen_ccm_init(cc, bc_impl, key, key_len, iv, tag_len);
|
||||
}
|
||||
|
||||
static void
|
||||
ccm_max_plaintext(const br_sslrec_ccm_context *cc,
|
||||
size_t *start, size_t *end)
|
||||
{
|
||||
size_t len;
|
||||
|
||||
*start += 8;
|
||||
len = *end - *start - cc->tag_len;
|
||||
if (len > 16384) {
|
||||
len = 16384;
|
||||
}
|
||||
*end = *start + len;
|
||||
}
|
||||
|
||||
static unsigned char *
|
||||
ccm_encrypt(br_sslrec_ccm_context *cc,
|
||||
int record_type, unsigned version, void *data, size_t *data_len)
|
||||
{
|
||||
br_ccm_context zc;
|
||||
unsigned char *buf;
|
||||
unsigned char nonce[12], header[13];
|
||||
size_t len;
|
||||
|
||||
buf = (unsigned char *)data;
|
||||
len = *data_len;
|
||||
|
||||
/*
|
||||
* Make nonce; the explicit part is an encoding of the sequence
|
||||
* number.
|
||||
*/
|
||||
memcpy(nonce, cc->iv, sizeof cc->iv);
|
||||
br_enc64be(nonce + 4, cc->seq);
|
||||
|
||||
/*
|
||||
* Assemble synthetic header for the AAD.
|
||||
*/
|
||||
br_enc64be(header, cc->seq ++);
|
||||
header[8] = (unsigned char)record_type;
|
||||
br_enc16be(header + 9, version);
|
||||
br_enc16be(header + 11, len);
|
||||
|
||||
/*
|
||||
* Perform CCM encryption.
|
||||
*/
|
||||
br_ccm_init(&zc, &cc->bc.vtable);
|
||||
br_ccm_reset(&zc, nonce, sizeof nonce, sizeof header, len, cc->tag_len);
|
||||
br_ccm_aad_inject(&zc, header, sizeof header);
|
||||
br_ccm_flip(&zc);
|
||||
br_ccm_run(&zc, 1, buf, len);
|
||||
br_ccm_get_tag(&zc, buf + len);
|
||||
|
||||
/*
|
||||
* Assemble header and adjust pointer/length.
|
||||
*/
|
||||
len += 8 + cc->tag_len;
|
||||
buf -= 13;
|
||||
memcpy(buf + 5, nonce + 4, 8);
|
||||
buf[0] = (unsigned char)record_type;
|
||||
br_enc16be(buf + 1, version);
|
||||
br_enc16be(buf + 3, len);
|
||||
*data_len = len + 5;
|
||||
return buf;
|
||||
}
|
||||
|
||||
/* see bearssl_ssl.h */
|
||||
const br_sslrec_out_ccm_class br_sslrec_out_ccm_vtable = {
|
||||
{
|
||||
sizeof(br_sslrec_ccm_context),
|
||||
(void (*)(const br_sslrec_out_class *const *,
|
||||
size_t *, size_t *))
|
||||
&ccm_max_plaintext,
|
||||
(unsigned char *(*)(const br_sslrec_out_class **,
|
||||
int, unsigned, void *, size_t *))
|
||||
&ccm_encrypt
|
||||
},
|
||||
(void (*)(const br_sslrec_out_ccm_class **,
|
||||
const br_block_ctrcbc_class *, const void *, size_t,
|
||||
const void *, size_t))
|
||||
&out_ccm_init
|
||||
};
|
||||
|
|
@ -39,7 +39,8 @@ br_ssl_server_init_full_ec(br_ssl_server_context *cc,
|
|||
* -- Don't use 3DES if AES is available.
|
||||
* -- Try to have Forward Secrecy (ECDHE suite) if possible.
|
||||
* -- ChaCha20+Poly1305 is better than AES/GCM (faster, smaller).
|
||||
* -- GCM is better than CBC.
|
||||
* -- GCM is better than CCM and CBC. CCM is better than CBC.
|
||||
* -- CCM is better than CCM_8.
|
||||
* -- AES-128 is preferred over AES-256 (AES-128 is already
|
||||
* strong enough, and AES-256 is 40% more expensive).
|
||||
*
|
||||
|
|
@ -50,6 +51,10 @@ br_ssl_server_init_full_ec(br_ssl_server_context *cc,
|
|||
BR_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
|
||||
|
|
@ -137,6 +142,7 @@ br_ssl_server_init_full_ec(br_ssl_server_context *cc,
|
|||
* Symmetric encryption.
|
||||
*/
|
||||
br_ssl_engine_set_default_aes_cbc(&cc->eng);
|
||||
br_ssl_engine_set_default_aes_ccm(&cc->eng);
|
||||
br_ssl_engine_set_default_aes_gcm(&cc->eng);
|
||||
br_ssl_engine_set_default_des_cbc(&cc->eng);
|
||||
br_ssl_engine_set_default_chapol(&cc->eng);
|
||||
|
|
|
|||
|
|
@ -53,6 +53,10 @@ br_ssl_server_init_full_rsa(br_ssl_server_context *cc,
|
|||
BR_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
|
||||
BR_TLS_RSA_WITH_AES_128_GCM_SHA256,
|
||||
BR_TLS_RSA_WITH_AES_256_GCM_SHA384,
|
||||
BR_TLS_RSA_WITH_AES_128_CCM,
|
||||
BR_TLS_RSA_WITH_AES_256_CCM,
|
||||
BR_TLS_RSA_WITH_AES_128_CCM_8,
|
||||
BR_TLS_RSA_WITH_AES_256_CCM_8,
|
||||
BR_TLS_RSA_WITH_AES_128_CBC_SHA256,
|
||||
BR_TLS_RSA_WITH_AES_256_CBC_SHA256,
|
||||
BR_TLS_RSA_WITH_AES_128_CBC_SHA,
|
||||
|
|
@ -121,6 +125,7 @@ br_ssl_server_init_full_rsa(br_ssl_server_context *cc,
|
|||
* Symmetric encryption.
|
||||
*/
|
||||
br_ssl_engine_set_default_aes_cbc(&cc->eng);
|
||||
br_ssl_engine_set_default_aes_ccm(&cc->eng);
|
||||
br_ssl_engine_set_default_aes_gcm(&cc->eng);
|
||||
br_ssl_engine_set_default_des_cbc(&cc->eng);
|
||||
br_ssl_engine_set_default_chapol(&cc->eng);
|
||||
|
|
|
|||
|
|
@ -252,12 +252,13 @@ extern const cipher_suite cipher_suites[];
|
|||
#define REQ_SHA384 0x0008 /* suite needs SHA-384 */
|
||||
#define REQ_AESCBC 0x0010 /* suite needs AES/CBC encryption */
|
||||
#define REQ_AESGCM 0x0020 /* suite needs AES/GCM encryption */
|
||||
#define REQ_CHAPOL 0x0040 /* suite needs ChaCha20+Poly1305 */
|
||||
#define REQ_3DESCBC 0x0080 /* suite needs 3DES/CBC encryption */
|
||||
#define REQ_RSAKEYX 0x0100 /* suite uses RSA key exchange */
|
||||
#define REQ_ECDHE_RSA 0x0200 /* suite uses ECDHE_RSA key exchange */
|
||||
#define REQ_ECDHE_ECDSA 0x0400 /* suite uses ECDHE_ECDSA key exchange */
|
||||
#define REQ_ECDH 0x0800 /* suite uses static ECDH key exchange */
|
||||
#define REQ_AESCCM 0x0040 /* suite needs AES/CCM encryption */
|
||||
#define REQ_CHAPOL 0x0080 /* suite needs ChaCha20+Poly1305 */
|
||||
#define REQ_3DESCBC 0x0100 /* suite needs 3DES/CBC encryption */
|
||||
#define REQ_RSAKEYX 0x0200 /* suite uses RSA key exchange */
|
||||
#define REQ_ECDHE_RSA 0x0400 /* suite uses ECDHE_RSA key exchange */
|
||||
#define REQ_ECDHE_ECDSA 0x0800 /* suite uses ECDHE_ECDSA key exchange */
|
||||
#define REQ_ECDH 0x1000 /* suite uses static ECDH key exchange */
|
||||
|
||||
/*
|
||||
* Parse a list of cipher suite names. The names are comma-separated. If
|
||||
|
|
|
|||
|
|
@ -952,6 +952,9 @@ do_client(int argc, char *argv[])
|
|||
if ((req & REQ_AESCBC) != 0) {
|
||||
br_ssl_engine_set_default_aes_cbc(&cc.eng);
|
||||
}
|
||||
if ((req & REQ_AESCCM) != 0) {
|
||||
br_ssl_engine_set_default_aes_ccm(&cc.eng);
|
||||
}
|
||||
if ((req & REQ_AESGCM) != 0) {
|
||||
br_ssl_engine_set_default_aes_gcm(&cc.eng);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,6 +82,30 @@ const cipher_suite cipher_suites[] = {
|
|||
REQ_ECDHE_RSA | REQ_AESGCM | REQ_SHA384 | REQ_TLS12,
|
||||
"ECDHE with RSA, AES-256/GCM encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"ECDHE_ECDSA_WITH_AES_128_CCM",
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
|
||||
REQ_ECDHE_ECDSA | REQ_AESCCM | REQ_SHA256 | REQ_TLS12,
|
||||
"ECDHE with ECDSA, AES-128/CCM encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"ECDHE_ECDSA_WITH_AES_256_CCM",
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
|
||||
REQ_ECDHE_ECDSA | REQ_AESCCM | REQ_SHA256 | REQ_TLS12,
|
||||
"ECDHE with ECDSA, AES-256/CCM encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"ECDHE_ECDSA_WITH_AES_128_CCM_8",
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
|
||||
REQ_ECDHE_ECDSA | REQ_AESCCM | REQ_SHA256 | REQ_TLS12,
|
||||
"ECDHE with ECDSA, AES-128/CCM_8 encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"ECDHE_ECDSA_WITH_AES_256_CCM_8",
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
|
||||
REQ_ECDHE_ECDSA | REQ_AESCCM | REQ_SHA256 | REQ_TLS12,
|
||||
"ECDHE with ECDSA, AES-256/CCM_8 encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
|
||||
BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
|
||||
|
|
@ -214,6 +238,30 @@ const cipher_suite cipher_suites[] = {
|
|||
REQ_RSAKEYX | REQ_AESGCM | REQ_SHA384 | REQ_TLS12,
|
||||
"RSA key exchange, AES-256/GCM encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"RSA_WITH_AES_128_CCM",
|
||||
BR_TLS_RSA_WITH_AES_128_CCM,
|
||||
REQ_RSAKEYX | REQ_AESCCM | REQ_SHA256 | REQ_TLS12,
|
||||
"RSA key exchange, AES-128/CCM encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"RSA_WITH_AES_256_CCM",
|
||||
BR_TLS_RSA_WITH_AES_256_CCM,
|
||||
REQ_RSAKEYX | REQ_AESCCM | REQ_SHA256 | REQ_TLS12,
|
||||
"RSA key exchange, AES-256/CCM encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"RSA_WITH_AES_128_CCM_8",
|
||||
BR_TLS_RSA_WITH_AES_128_CCM_8,
|
||||
REQ_RSAKEYX | REQ_AESCCM | REQ_SHA256 | REQ_TLS12,
|
||||
"RSA key exchange, AES-128/CCM_8 encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"RSA_WITH_AES_256_CCM_8",
|
||||
BR_TLS_RSA_WITH_AES_256_CCM_8,
|
||||
REQ_RSAKEYX | REQ_AESCCM | REQ_SHA256 | REQ_TLS12,
|
||||
"RSA key exchange, AES-256/CCM_8 encryption (TLS 1.2+)"
|
||||
},
|
||||
{
|
||||
"RSA_WITH_AES_128_CBC_SHA256",
|
||||
BR_TLS_RSA_WITH_AES_128_CBC_SHA256,
|
||||
|
|
@ -347,15 +395,19 @@ static const struct {
|
|||
{ "aes_big_cbcenc", "big", &br_aes_big_cbcenc_vtable },
|
||||
{ "aes_big_cbcdec", "big", &br_aes_big_cbcdec_vtable },
|
||||
{ "aes_big_ctr", "big", &br_aes_big_ctr_vtable },
|
||||
{ "aes_big_ctrcbc", "big", &br_aes_big_ctrcbc_vtable },
|
||||
{ "aes_small_cbcenc", "small", &br_aes_small_cbcenc_vtable },
|
||||
{ "aes_small_cbcdec", "small", &br_aes_small_cbcdec_vtable },
|
||||
{ "aes_small_ctr", "small", &br_aes_small_ctr_vtable },
|
||||
{ "aes_small_ctrcbc", "small", &br_aes_small_ctrcbc_vtable },
|
||||
{ "aes_ct_cbcenc", "ct", &br_aes_ct_cbcenc_vtable },
|
||||
{ "aes_ct_cbcdec", "ct", &br_aes_ct_cbcdec_vtable },
|
||||
{ "aes_ct_ctr", "ct", &br_aes_ct_ctr_vtable },
|
||||
{ "aes_ct_ctrcbc", "ct", &br_aes_ct_ctrcbc_vtable },
|
||||
{ "aes_ct64_cbcenc", "ct64", &br_aes_ct64_cbcenc_vtable },
|
||||
{ "aes_ct64_cbcdec", "ct64", &br_aes_ct64_cbcdec_vtable },
|
||||
{ "aes_ct64_ctr", "ct64", &br_aes_ct64_ctr_vtable },
|
||||
{ "aes_ct64_ctrcbc", "ct64", &br_aes_ct64_ctrcbc_vtable },
|
||||
|
||||
{ "des_tab_cbcenc", "tab", &br_des_tab_cbcenc_vtable },
|
||||
{ "des_tab_cbcdec", "tab", &br_des_tab_cbcdec_vtable },
|
||||
|
|
@ -418,6 +470,8 @@ static const struct {
|
|||
(const void *(*)(void))&br_aes_x86ni_cbcdec_get_vtable },
|
||||
{ "aes_x86ni_ctr", "x86ni",
|
||||
(const void *(*)(void))&br_aes_x86ni_ctr_get_vtable },
|
||||
{ "aes_x86ni_ctrcbc", "x86ni",
|
||||
(const void *(*)(void))&br_aes_x86ni_ctrcbc_get_vtable },
|
||||
{ "chacha20_sse2", "sse2",
|
||||
(const void *(*)(void))&br_chacha20_sse2_get },
|
||||
{ "ghash_pclmul", "pclmul",
|
||||
|
|
|
|||
|
|
@ -1058,6 +1058,9 @@ do_server(int argc, char *argv[])
|
|||
if ((req & REQ_AESCBC) != 0) {
|
||||
br_ssl_engine_set_default_aes_cbc(&cc.eng);
|
||||
}
|
||||
if ((req & REQ_AESCCM) != 0) {
|
||||
br_ssl_engine_set_default_aes_ccm(&cc.eng);
|
||||
}
|
||||
if ((req & REQ_AESGCM) != 0) {
|
||||
br_ssl_engine_set_default_aes_gcm(&cc.eng);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -723,6 +723,9 @@ do_twrch(int argc, char *argv[])
|
|||
if ((req & REQ_AESCBC) != 0) {
|
||||
br_ssl_engine_set_default_aes_cbc(&cc.eng);
|
||||
}
|
||||
if ((req & REQ_AESCCM) != 0) {
|
||||
br_ssl_engine_set_default_aes_ccm(&cc.eng);
|
||||
}
|
||||
if ((req & REQ_AESGCM) != 0) {
|
||||
br_ssl_engine_set_default_aes_gcm(&cc.eng);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue